使用jquery ajax跨域检索json数据

时间:2016-02-24 06:44:50

标签: javascript jquery ajax django cross-domain

我尝试使用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(但我认为这不是问题)。感谢..

3 个答案:

答案 0 :(得分:1)

此标头需要位于服务器端,而不是客户端。

尝试Django CORS Headers

  

一个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');
    }
});

}