25
我不太明白如何使用jQuery的ajax函數的回調函數。使用JQuery調用JSONP函數ajax
我在JavaScript下面的代碼:
try {
$.ajax({
url: 'http://url.of.my.server/submit?callback=?',
cache: false,
type: 'POST',
data: $("#survey").serialize(),
dataType: "jsonp",
timeout: 200,
crossDomain: true,
jsonp: 'jsonp_callback',
success: function (data, status) {
mySurvey.closePopup();
},
error: function (xOptions, textStatus) {
mySurvey.closePopup();
}
});
} catch (err) {
mySurvey.closePopup();
}
和服務器端(AppEngine上/ Python)的我得到的回調參數的值,並與
self.response.headers['Content-Type'] = 'application/json; charset=utf-8'
self.response.out.write(callback + '({"msg": "ok"});')
但隨後作出迴應我在瀏覽器上獲得"Error: jQuery152042227689944248825_1317400799214 is not a function"
。
處理這個問題的正確方法是什麼?現在我得到了我需要的結果,但是我知道這是不正確的事實正在困擾着我。
我猜POST參數被忽略。據我所知,JSONP只能發出GET請求,因爲實際做的是在頁面的頭部創建一個
刪除這一行:
或更換本線:
,因爲目前你問jQuery來創建
callback=?
隨機回調函數的名字,然後告訴jQuery的要改爲使用jsonp_callback
。來源
2011-09-30 17:21:49 Joe
JSONP是被定義爲服務器接受的,而jsonpCallback是JavaScript函數名是查詢參數名稱在客戶端執行。
當你使用這些網址:
問號?在最後指示jQuery生成一個隨機函數,而自動生成函數的預定義行爲將僅調用回調 - 在這種情況下的成功函數 - 將json數據作爲參數傳遞。
同樣放在這裏,如果您使用$ .getJSON用?佔位符,它將生成一個隨機函數,而自動生成函數的預定義行爲將僅調用回調:
來源
2015-06-27 09:43:46
「自動生成的函數將只調用回調」,謝謝! – Eddy