我正在尝试使用jQuery与SAP后端系统提供的ODATA REST服务进行AJAX。成功HTTP请求后出现“Uncaught SyntaxError:Unexpected token <”
$.ajax({
type: 'GET',
url: 'http://sapxx.sapms/sap/opu/odata/.../',
async: true,
dataType: 'jsonp',
username: 'username',
password: 'password',
crossDomain: true,
success: function() {
alert('Done.');
},
error: function() {
alert('Error.');
},
});
请求返回状态200,我得到这被称为像服务器的响应“?回调= jQuery3100687 ......”并包含XML代码。所有这些都可以在Chrome调试器中看到。但是,成功的HTTP请求后,我得到上述错误
Uncaught SyntaxError: Unexpected token <
我怀疑的错误是由于它被设置为“JSONP”在请求中的“数据类型”参数。有没有办法解决这个错误?服务器只能使用XML格式进行响应。该请求仅在dataType设置为“jsonp”时起作用,我猜是因为它启用了CORS。发送请求后,尽管处于200状态,但仍会收到“错误”警报。
您的数据回复无效,请检查您的回复。 –
http://stackoverflow.com/questions/24377804/cross-domain-jsonp-xml-response –
你不能奇迹般地让服务器改变对JSONP的响应。服务器需要这样做。 CORS的唯一解决方法是在服务器上使用代理,或者在设置CORS头文件或返回JSONP的其他服务器上使用代理。 – epascarello