Ahoy!
我正在使用WCF服務來處理來自單獨域上的Web服務器(因此使用JSONP)的Ajax調用。我的電話是這樣的:
$.ajax({
dataType: 'jsonp',
type: 'GET',
url: 'http://localhost/s.svc/login?callback=?&l=en&e=foo&p=bar',
success: function (serverData) {
// [...]
},
error: function (jqXHR, textStatus, errorThrown) {
// [...]
}
});
我從服務器得到的迴應是這樣的:
?({"DataIsValid":true,"ErrorOccurred":false,"EmailAddressValidationMessage":"","PasswordValidationMessage":""});
和jQuery隨後讀取數據時,它拋出一個parsererror。
上面的響應看起來像有效的JSON,並且根據文檔,我認爲「?callback =?」適用於使用JSONP的$ .ajax調用。
在此先感謝您指出我所缺少明顯:-)
如何用迴應包裝回調參數?你的意思是做一個$回調。'({'。$ jsonResponse。'})'; ? – PinoyStackOverflower 2014-05-20 08:19:53
@PinoyStackOverflower - 抱歉需要一段時間才能找回。回調參數包含前端存在的回調的函數名稱。 jQuery在jsonp請求中包含它。所以你可以從服務器上的請求中讀取'callback'參數,然後對於客戶端的響應,你會返回一個像'callbackParameterValue +'('+ JSON.stringify(serverData)+')'這樣的字符串。然後,jQuery將得到響應並將其傳遞給成功函數,此時您需要將其解析爲JSON,如上所述。 – mpickell 2014-08-28 17:34:44
嗨@mpickell,您能否通過編輯Adam的代碼發佈包含您的建議的完整代碼。這會更有幫助。謝謝! – Bhargav 2016-12-06 05:40:41