2011-03-31 44 views
0

我在MVC中編寫併發送jQuery AJAX請求。爲什麼使用jQuery AJAX請求將回調參數添加到查詢字符串中

我不明白爲什麼添加了「回調」參數查詢字符串的時候我送使用jQuery AJAX請求如下

http://localhost:39224/Test/TAction/2?callback=jQuery151031896859929189747_1301556762907 

這會導致錯誤時響應返回 我從來沒有遇到過這樣的問題。它可能是什麼?

這裏的請求代碼 謝謝

$.ajax({ 
     type: 'POST', 
     dataType: 'json', 
     url: 'Test/TAction/' + id, 
     async: false,     
     success: function (data, textStatus, XMLHttpRequest) { 
       var branches = $.parseJSON(data); 
     }, 
     error: function (a, b, c) { 
       var d = 1; 
     } 
}); 

回答

2

按照該文檔的jsonp設置.ajax()

覆蓋回調函數名 JSONP請求。此值將使用 而不是'回調' 'callback =?'部分查詢字符串爲 。所以{jsonp:'onJSONPLoad'} 將導致通過 到服務器。 在jQuery 1.5, 設置jsonp選項的至false 防止jQuery的從添加 「?回調」字符串的URL或 嘗試使用「=?」爲 轉型。在這種情況下, 也應明確設置 jsonpCallback設置。例如,{ jsonp: false, jsonpCallback: "callbackName" }

即,它我看來,你需要明確設置jsonpfalse如果你使用jQuery 1.5 +,雖然我還沒有嘗試過自己。

+0

我曾經幾百次** **簡單的jQuery AJAX請求和從來沒有遇到過這樣的問題增加。爲什麼會發生? – theateist 2011-03-31 08:06:50

+0

@theateist不確定。事情已經在1.5中發生了變化,但我不能說這是1.5的新功能。它有添加'jsonp'設置的效果嗎? – jensgram 2011-03-31 08:08:21

+1

是否使用$ .ajaxSetup()並設置jsonp,在您的頁面上使用其他代碼? – Douglas 2011-03-31 08:09:41

0

在jQuery的1.5「?回調」自動所以你需要配置JSONP

相關問題