0

跨域请求问题

我的 ajax 调用代码实际上是当我直接在浏览器中运行给定的 url 时,它向我显示 json 数据,但使用 ajax 调用它总是向我显示 ajax 错误相信我,我尝试了很多事情,但 18 天没有取得丰硕的结果。

$.ajax({
        crossDomain:true,
        type: "GET",
        url: 'http://taxihub.azurewebsites.net/Mobile/api/json.php?method=getCompanyList',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processData: false,
        success: function (data) {

                console.log(data);
                return;

        },
        error: function (err) {
            console.log("AJAX ERROR");
            console.log(err.responseText);
        }
    });

您也可以直接查看此链接,您将看到 json 数据,但我发现错误,我不知道为什么“ http://taxihub.azurewebsites.net/Mobile/api/json.php?method=getCompanyList

错误:Access-Control-Allow-Origin 不允许OPTIONS http://taxihub.azurewebsites.net/Mobile/api/json.php?method=getCompanyList Origin lhost:809。

请帮助我,我在这个问题上被困在这里 18 天

4

1 回答 1

1

删除cross-domainandcontent-type部分,它会起作用,但您必须做一些额外的字符串操作工作才能将其放入 JSON 对象中:

$.ajax({
    type: "GET",
    url: 'http://taxihub.azurewebsites.net/Mobile/api/json.php?method=getCompanyList',
    dataType: "json",
    success: function (data) {
            console.log(data.result.getCompanyList[0].CompanyID);
            return;
    },
    error: function (err) {
        console.log("AJAX ERROR");
        console.log(err);
    }
});
}

实际上,无论有没有它,跨域似乎都没有任何影响。我猜您的目标服务器没有严格的跨域防护,但不喜欢 JSON 内容类型。我很乐意得到更具体的解释。

编辑如果重要的话,我使用了 JQuery 1.10.2

于 2013-10-10T01:34:59.907 回答