2010-08-13 23 views
6

Ajax isteği için web sunucumda bir javascript dizisi göndermeye çalışıyorum. Ben $.ajax() çağrı Chrome'un geliştirici araçları etiketleri 2 elemanları (tüm unsurları sadece dizeleri) ile bir dizi olarak itiraz göstermek vurduğunda olarakNeden JQuery, dizi verilerini göndermek yerine "benim parametrelerim olarak" undefined = undefined "gönderiyor?

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); 
      } 
     }); 
    } 

dizisi, düzgün şekil verilirken: İşte benim kodudur.

Ancak fiddler göre, fiili sonrası parametreleri sunucuya yollanmaktan

şunlardır: Neyi yanlış yapıyorum

undefined=undefined 

?

Düzenleme console.log gösterir:

console.log(tags) 
["portability", "testing"] 
undefined 
+4

'tags' bir ilişkisel dizi değil, bu yüzden jQuery ondan bir sorgu dizesi inşa zor anlar yaşıyor düşünün. Her ne kadar şaşırmış olsam da, bunu 'undefined' olarak değerlendirir, muhtemelen bu problemdir. –

cevap

9

bir console.log (etiket) etiketleri hakkında ne diyor? Böyle göndermeden

Dene:

data : ({tags : tags}) 
+0

Eklenen konsol.log çıkışı sorusuna – KallDrexx

+0

eklendi! (Çözümünüzü denemeden önce sayfamı yenilemeyi unuttum) – KallDrexx

İlgili konular