Ich versuche ein JavaScript-Array für eine Ajax-Anfrage an meinen Webserver zu senden. Hier ist mein Code:Warum sendet Jquery "undefined = undefined" als Post-Parameter, anstatt die Array-Daten zu senden?
function SearchTasksByTags() {
// Get the list of tags currently chosen
var tags = [];
$('.tagit-choice input').each(function() { tags.push($(this).val()); });
// If we have no tags, don't bother searching and just clear the current results
if (tags.length == 0) {
$('#tagSearchResults').empty();
return;
}
// Retrieve the search results from the server
$.ajax({ url: '<%= Url.Action("SearchByTags") %>',
data: tags,
type: 'POST',
success: function (html) {
$("#tagSearchResults").empty().append(html);
}
});
}
Das Array korrekt gebildet wird, als wenn ich traf den $.ajax()
Anruf Chrome-Entwickler-Tools zeigen die Tags Objekt als ein Array mit zwei Elementen zu sein (alle Elemente sind nur Strings).
Doch nach Fiedler, immer die tatsächlichen Post-Parameter an den Server gesendet werden:
undefined=undefined
Was mache ich falsch?
bearbeiten console.log zeigt:
console.log(tags)
["portability", "testing"]
undefined
'tags' ist nicht ein assoziatives Array, so stelle ich mir jQuery eine harte Zeit haben. Obwohl ich überrascht bin, dass es als "undefiniert" behandelt wird, ist das wahrscheinlich das Problem. –