我正在尝试使用带有SAP后端系统提供的ODATA REST服务的jQuery来执行AJAX。
$.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,我从服务器得到响应,称为"?callback = jQuery3100687 ..."并包含xml代码。所有这些都在Chrome调试器中可见。但是在成功的HTTP请求之后我得到了上述错误
Uncaught SyntaxError: Unexpected token <
我怀疑错误是由于&#34; dataType&#34;参数设置为&#34; jsonp&#34;在请求中。有没有办法解决这个错误?服务器只能使用XML格式进行响应。该请求仅在dataType设置为&#34; jsonp&#34;时才有效,我猜是因为它启用了CORS。发送请求后,我收到&#34;错误&#34;尽管处于200状态,但仍会发出警报。
答案 0 :(得分:1)
您说您从服务器收到xml
响应。你的ajax请求是为jsonp设置的,但是:
dataType: 'jsonp',
请改为尝试:
dataType: 'xml',
success: function(xml) {
//remainder of the code
}
如果将dataType
设置为jsonp
,jQuery将尝试将响应解析为JSON。这会导致错误,因为响应不是JSON。