我尝试使用jquery ajax从其他域检索json数据,但它不起作用。这是我的代码:
function getLeague() {
$.ajax({
url: 'http://otherdomainurl.ashx?username=xxx&pass=xxx&type=xxx',
headers: { 'Access-Control-Allow-Origin': '*' },
dataType: 'jsonp',
async: false,
crossDomain: true,
success: function(data) {
alert('Success');
},
error: function(error) {
alert('Fail');
}
});
}
我试图删除标头,异步和跨域。我试图将dataType更改为json。但它始终提供失败警报。我用django(但我认为这不是问题)。感谢..
答案 0 :(得分:1)
此标头需要位于服务器端,而不是客户端。
一个Django应用程序,它将CORS(跨源资源共享)标头添加到响应中。
虽然JSON-P很有用,但它严格限于GET请求。 CORS构建于XmlHttpRequest之上,允许开发人员发出跨域请求,类似于同域请求。
答案 1 :(得分:0)
您的错误位于 async:false 。
跨域请求和dataType:“jsonp”请求不支持 同步操作
http://api.jquery.com/jquery.ajax/
因此。你真的需要设置async:false?
答案 2 :(得分:0)
尝试以下代码
function getLeague() {
$.ajax({
url: 'http://otherdomainurl.ashx',
data: {Your Obj},
type: 'GET',
dataType: 'jsonp',
success: function(data) {
alert('Success');
},
error: function(error) {
alert('Fail');
}
});
}