我对来自外部域的web服务进行了AJAX调用,并且我正在尝试管理XML响应,AJAX调用有效,因为它是在Adobe Connect平台上登录的目标并且可以正常工作。但它在浏览器控制台上显示以下错误:
SyntaxError: syntax error
<?xml version="1.0" encoding="utf-8"?>
这是AJAX调用的代码:
$.ajax({
type : "GET",
url : URL,
dataType : "jsonp",
success : function(service_data) {
console.log("OK");
console.log(service_data);
},
error : function(msg) {
console.log("ERROR");
console.log(JSON.stringify(msg));
}
});
万分感谢。
答案 0 :(得分:3)
你得到的错误是因为你说你期待一个jsonp并且提供了一个xml。
$.ajax({
type : "GET",
url : URL,
dataType : "xml",
success : function(service_data) {
console.log("OK");
console.log(service_data);
},
error : function(msg) {
console.log("ERROR");
console.log(JSON.stringify(msg));
}
});
我要更改dataType
答案 1 :(得分:3)
一位同事告诉我两种可能的解决方案:
1 - CORS
2 - 代理脚本。
我会告诉你它是否有效,我会尝试第一个。
答案 2 :(得分:1)
您已将数据类型指定为“jsonp”,但您将获得xml作为结果。尝试将数据类型更改为“xml”。更多信息可以在http://api.jquery.com/jquery.ajax/找到,但相关位是:
“xml”:返回可以通过jQuery处理的XML文档。
“jsonp”:使用JSONP加载JSON块。添加额外的“?callback =?”到URL的末尾以指定回调。通过将查询字符串参数“_ = [TIMESTAMP]”附加到URL来禁用缓存,除非缓存选项设置为true。