我正在尝试使用本地环境中的jQuery来发出ajax请求。
$.ajax({
url: requestURL,
dataType: "json",
timeout: 120000,
success: function(data){
// do something
},
error: function(XMLHttpRequest, textStatus, errorThrown){
console.log("Instants.loadGame: error loading games: error text: " + textStatus + "; error thrown: " + errorThrown);
}
});
我已经尝试过使用dataType json和jsonp(因为这是其他所有人似乎都说的解决了这个问题)但是我得到错误。对于dataType json,错误响应具有textStatus =“error”并且errorThrown为空。对于dataType jsonp,错误响应有textStatus =“parsererror”,而errorThrown =“jQuery19002007321439859855_1361446807440未被调用”。
我知道这个代码在与我的请求URL在同一个域上运行时起作用,所以我只能假设它是因为我在我的本地环境中这样做。我已经设置了我的跨域domain.xml以允许所有内容。我正在使用jQuery 1.9.0。
有没有人有任何想法?我一直在网上看这个,但没有一个帮助其他人的解决方案似乎对我有用......
谢谢, 石楠
答案 0 :(得分:0)
当你收到“jQuery19002007321439859855_1361446807440未被调用”这样的错误时,这是因为它不是正确的jsonp响应。当使用jsonp时,服务器需要是JavaScript(一个实际的脚本),并且该脚本需要调用作为url的一部分提供的函数(在这种情况下,函数名为jQuery19002007321439859855_1361446807440,jQuery映射到您提供的成功处理程序。 / p>
最可能的原因是服务器返回了普通的json数据,但这不起作用。该数据需要传递给脚本。因此,对服务器的请求应返回类似
的内容var data = {"foo":1}; //your data here
jQuery19002007321439859855_1361446807440(data);