成功的HTTP请求后,“未捕获的SyntaxError:意外的令牌<”
我正在尝试使用jQuery和SAP后端系统提供的ODATA REST服务来执行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 <
我怀疑错误是由于“dataType”参数在请求中设置为“jsonp”。 有没有办法解决这个错误? 服务器只能使用XML格式进行响应。 该请求仅在dataType设置为“jsonp”时有效,我猜是因为它启用了CORS。 发送请求后,尽管有200状态,我仍然收到“错误”警告。
你说你从服务器得到一个xml
响应。 你的ajax请求是为jsonp设置的,但是:
dataType: 'jsonp',
试试这个:
dataType: 'xml', success: function(xml) { //remainder of the code }
如果将dataType
设置为jsonp
,jQuery将尝试将响应解析为JSON。 这会导致错误,因为响应不是JSON。