跨域请求问题
我的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天
答案 0 :(得分:1)
删除cross-domain
和content-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