我正在使用 ajax 进行 GET,使用 dataType jsonp 从另一个我不拥有且无法更改的域上的服务器中引入一个小的 xml 文件。除 jsonp 之外的任何数据类型都失败,并显示“Access-Control-Allow-Origin 不允许使用 Origin localhost。很好。
问题是当我说它是 jsonp 时服务器返回相同的 xml 响应,而 jQuery 似乎不喜欢这样。dataFilter 似乎没有帮助,因为当我引用返回的数据时,我得到一个“Uncaught SyntaxError:Unexpected token <”错误。也许还有其他方法可以使用 dataFilter 设置?
我的代码复制如下:
$(document).ready(function(){
$.ajax({
type: "GET",
url: "https://b2b.firstenergycorp.com/invoke/ ... very long url... ",
dataType: "jsonp",
dataFilter: function(data, type){
if(type == "xml") alert("returned xml!");
var newdata = data.replace(/</g, '{'); // Firebug complains about this
newdata = newdata.replace(/>/g, '}');
return newdata;
},
jsonp: "callback",
jsonpCallback: "jsonpcallback"
});
function jsonpcallback(returndata) {
alert( "data returned: " + returndata );
};
});