2010-03-17 89 views
3

我有一個奇怪的錯誤,其中我的jquery ajax請求不提交所有參數。並非所有的參數發送到jquery ajax調用

$.ajax({ 
    url: "/ajax/doAssignTask", 
    type: 'GET', 
    contentType: "application/json", 
    data: { 
     "just_a_task": just_a_task, 
     "fb_post_date": fb_post_date, 
     "task_fb_postId": task_fb_postId, 
     "sedia_task_guid": sedia_task_guid, 
     "itemGuid": itemGuid, 
     "itemType": itemType, 
     "taskName": taskName, 
     "assignedToUserGuid": assignedToUserGuid, 
     "taskDescription": taskDescription 
    }, 
    success: function(data, status) { 
     //success code 
    }, 
    error: function(xhr, desc, err) { 
     //error code 
    } 
}); 

但使用Firebug(和調試),我可以看到,只有這些變量都貼:

assignedToUserGuid 
itemGuid 
itemType 
just_a_task 
taskDescription 
taskName 

它遺漏fb_post_datetask_fb_postId,並sedia_task_guid

我不知道什麼原因它只發布一些項目而不是其他項目?有人知道嗎?

數據被髮送到

任何幫助理解asp.net控制器返回jsonresult(因此的contentType)。謝謝!

的完整性檢查的興趣,嘗試添加一個 beforeSend到你的選擇,並確保被髮送的值,並從那裏
+0

如果您正在嘗試發佈內容,請將'type'更改爲'post'。 – rahul 2010-03-17 05:36:31

+0

是的,你是對的...雖然它應該罰款與GET。問題不在服務器端......但似乎與js有關? – rksprst 2010-03-17 05:39:54

+2

你確定所有變量在ajax請求之前都有價值嗎? – 2010-03-17 07:03:51

回答

2

你可以嘗試一些東西,如:

  • 看看是否所有的變量都值
  • 嘗試刪除「_」從變量的名字
+0

它結束了一些值是未定義的,即使它們被初始化爲空字符串而沒有改變......這本身很奇怪。但我不想花時間(我會回去+看看爲什麼後來)...所以我只是添加了一個檢查未定義的變量。 – rksprst 2010-03-22 03:24:15

0

....

例如

.ajax({ 
    beforeSend: function (xhr) { 
    // this==the options for this ajax request 
    if(! fb_post_date || !task_fb_postId || ! sedia_task_guid){ 
    alert("BORKED!"); 
    } 
}, 
.... 
2

你應該來幫助編碼和調試是JSON數據移動到一個變量...即,那麼你可以很容易地看到什麼是變量裏面張貼

var myData = { 
    just_a_task: just_a_task, 
    fb_post_date: fb_post_date, 
    task_fb_postId: task_fb_postId, 
    sedia_task_guid: sedia_task_guid, 
    itemGuid: itemGuid, 
    itemType: itemType, 
    taskName: taskName, 
    assignedToUserGuid: assignedToUserGuid, 
    taskDescription: taskDescription 
}; 
var jsonData = $.toJSON(myData); 

$.ajax({ 
    url: "/ajax/doAssignTask", 
    type: "GET", 
    contentType: "application/json", 
    dataType: "json", 
    data: jsonData, 
    success: function(data, status) { 
     //success code 
    }, 
    error: function(xhr, desc, err) { 
     //error code 
    } 
}); 

雖然前我沒有時間運行代碼,可能是JSON中的語音標記。這應該是出於爲本地JavaScript

1

檢查數據值中是否有特殊字符(,{} []'')。您必須轉義這些字符才能使JSON正常工作

希望這有助於。