我正在尝试从我的网站foo.com访问bar.com上的API。 Bar.com不允许使用CORS,我不知道他们是否正式支持JSONP。
我是否仍然可以通过JSONP(使用jQuery)访问API,或者网站是否明确需要支持它?
注意,这是我的AJAX请求:
$.ajax({
url: 'https://api.example.com',
jsonp: 'callback',
dataType: 'jsonp',
data: {
'command' : 'abc',
'partnerName' : 'def',
'partnerPassword' : 'ghi',
'partnerUserID' : 'jkl',
'partnerUserSecret' : 'mnop'
},
error: function (response) {
console.log(response);
return false;
},
success: function (response) {
console.log(response);
return false;
}
});
},
从Chrome中我得到:
Uncaught SyntaxError: Unexpected token :
答案 0 :(得分:2)
这是因为JSONP所做的是尝试评估来自API端点的代码。
如果通话结果是,请说
{"result": "OK"}
然后,为了使JSONP工作,服务器必须以这种方式响应它:
callback({"result": "OK"})
oyu在您的ajax调用中将属性jsonp
定义为callback
。