跨域请求问题来源不允许

时间:2013-10-10 01:19:40

标签: ajax

跨域请求问题

我的ajax调用代码实际上当我在浏览器中直接运行给出url它显示我json数据但是使用ajax调用它总是显示我ajax错误相信我我试过n跟随很多事情从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

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

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

1 个答案:

答案 0 :(得分:1)

删除cross-domaincontent-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