Envoyer jquery array via ajax dans le contrôleur de rails

J'ai besoin d'envoyer un tableau dans le contrôleur de rails via jquery ajax

Jquery CODE

$(document).ready(function(){ var counter = 2; $("#addButton").click(function () { var newTextBoxDiv = $(document.createElement('div')) .attr("id", 'TextBoxDiv' + counter); newTextBoxDiv.after().html('<input type="text" placeholder="Role" name="Role' + counter + '" id="textbox' + counter + '" value="" > <input type="text" placeholder="Search" name="search' + counter + '" id="se" value="" >'); newTextBoxDiv.appendTo("#TextBoxesGroup"); counter++; }); $("#getButton").click(function () { var fd = new FormData($("#movie-form")[0]); var name = document.getElementById("file").files[0].name; var arr = []; var msg = ''; for(i=1; i<counter;i++){ msg += "\n Textbox #" + i + " : " + $('#textbox' + i).val(); arr[i] = $('#textbox' + i).val(); } $.each(arr,function(index, item) { alert(index); alert(item); } ); fd.append( 'file', name); fd.append( 'file22', name); $.ajax({ url: '/create', data: {fd:fd,arr:arr}, processData: false, contentType: false, type: 'POST', success: function(data){ alert(data); } }); return false; }); 

Mais cela montre l'erreur

Une erreur s'est produite lors de l'analyse des paramètres de demande. Contenu: REXML :: ParseException (Le document "[object Object]" n'a pas de racine valide):

Pourriez-vous console.log votre gamme? Cela sera beaucoup plus facile et vous pourrez inspecter les sous-éléments lorsque vous cliquez dessus. Dans FireFox (avec le plugin FireBug installé) ou en Chrome, appuyez sur F12 pour ouvrir les outils dev et voir la console.

Je ne pense pas que cela fonctionnera pour IE mais vous pouvez convertir un objet JavaScript en JSON avec JSON.stringify afin que vous puissiez envoyer votre msg en tant que JSON:

essayer:

 for(i=1; i<counter;i++){ arr[i] = $('#textbox' + i).val(); } msg= JSON.stringify(arr) 

L'erreur que vous rencontrez est de votre application de rails mais vous n'avez pas posté de code où cette erreur se produit.

Je ne suis pas sûr de ce que rexml fait dans les rails, donc ne peut pas vraiment vous aider avec celui-là.

Pour faire une requête ajax POST via jquery, les données doivent être une chaîne.

 $.ajax({ url: "/create", type: 'POST', contentType: 'application/json', dataType: 'json', data: JSON.stringify(formData), function(data){ alert(data) } }); 

Faites attention à JSON étant indéfinie dans IE6 / 7. Si vous devez cibler ces navigateurs, utilisez ceci: https://github.com/douglascrockford/JSON-js