0

我正在尝试使用本地环境中的 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 相同的域上运行时有效,因此我只能假设这是因为我在本地环境中执行此操作。我已将我的 cross-domain.xml 设置为允许所有内容。我正在使用 jQuery 1.9.0。

有没有人有任何想法?我在网上看了很多,但没有一个帮助其他人的解决方案似乎对我有用......

谢谢,希瑟

4

1 回答 1

0

当您收到“未调用 jQuery19002007321439859855_1361446807440”之类的错误时,这是​​因为它不是正确的 jsonp 响应。使用 jsonp 时,服务器需要是 JavaScript(实际脚本),并且该脚本需要调用作为 url 一部分提供的函数(在这种情况下,函数名为 jQuery19002007321439859855_1361446807440,jQuery 映射到您提供的成功处理程序。

最可能的原因是服务器返回了纯 json 数据,但这不起作用。该数据需要传递给脚本。所以对服务器的请求应该返回类似

var data = {"foo":1}; //your data here
jQuery19002007321439859855_1361446807440(data);
于 2013-02-21T11:56:35.913 回答