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