2010-08-13 32 views
6

Tôi đang cố gắng gửi một mảng javascript đến máy chủ web của mình để có yêu cầu ajax. Đây là mã của tôi:Tại sao Jquery gửi "undefined = undefined" làm thông số bài đăng của tôi thay vì gửi dữ liệu mảng?

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

Mảng đang được hình thành một cách chính xác, như khi tôi nhấn công cụ phát triển các $.ajax() gọi của Chrome hiển thị các thẻ đối tượng như là một mảng với 2 yếu tố (tất cả các yếu tố này chỉ là chuỗi).

Tuy nhiên, theo cáy, các bài tham số thực tế bị gửi đến máy chủ là:

undefined=undefined 

Tôi đang làm gì sai?

Sửa console.log cho thấy:

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

'tags' không phải là một mảng kết hợp, vì vậy tôi tưởng tượng jQuery là có một thời gian khó khăn xây dựng một chuỗi truy vấn từ nó. Mặc dù tôi ngạc nhiên khi nó xử lý nó như là 'undefined', đó có thể là vấn đề. –

Trả lời

9

nào một console.log (tags) nói gì về các thẻ?

Cố gắng gửi nó như thế này:

data : ({tags : tags}) 
+0

Đã thêm đầu ra console.log vào câu hỏi – KallDrexx

+0

Đã hoạt động! (Tôi quên làm mới trang của mình trước khi thử giải pháp của bạn) – KallDrexx

Các vấn đề liên quan