Ajax jQuery和CORS

Ajax jQuery和CORS,ajax,jsonp,cors,Ajax,Jsonp,Cors,如果服务器没有用JSONP响应,我应该如何处理这个问题?我用$.ajax尝试了几个选项,但无法使其工作 请求: 来自服务器的响应示例(Python-Django中) 实际上,您必须更改服务器端的响应头。请求: 来自服务器的响应示例(Python-Django中) 实际上,您必须更改服务器端的响应头。这听起来像是对不支持JSONP的服务器执行跨域请求 浏览器拒绝来自不希望其数据用于跨域请求的服务器的数据有一个很好的理由。如果浏览器没有做到这一点,网络上就会出现大量的安全问题。因此,服务器需要允许

如果服务器没有用JSONP响应,我应该如何处理这个问题?我用$.ajax尝试了几个选项,但无法使其工作

请求: 来自服务器的响应示例(Python-Django中) 实际上,您必须更改服务器端的响应头。

请求: 来自服务器的响应示例(Python-Django中)
实际上,您必须更改服务器端的响应头。

这听起来像是对不支持JSONP的服务器执行跨域请求

浏览器拒绝来自不希望其数据用于跨域请求的服务器的数据有一个很好的理由。如果浏览器没有做到这一点,网络上就会出现大量的安全问题。因此,服务器需要允许此操作才能正常工作

服务器基本上有两种方法可以实现这一点:一种是通过JSONP的丑陋的老方法,但您说它不支持这一点。尽管您仍然可以尝试将url更改为
http://blockchain.info/ticker?callback=?“
和jsonp的数据类型

但也有新的,干净的方式与CORS头。如果服务器在其响应中添加一个
Accept-Control-Allow-Origin::
头,任何人(使用现代浏览器)都可以通过普通的Ajax调用使用数据


如果服务器不允许您使用其数据,您就倒霉了。

听起来您是在向不支持JSONP的服务器发出跨域请求

浏览器拒绝来自不希望其数据用于跨域请求的服务器的数据有一个很好的理由。如果浏览器没有做到这一点,网络上就会出现大量的安全问题。因此,服务器需要允许此操作才能正常工作

服务器基本上有两种方法可以实现这一点:一种是通过JSONP的丑陋的老方法,但您说它不支持这一点。尽管您仍然可以尝试将url更改为
http://blockchain.info/ticker?callback=?“
和jsonp的数据类型

但也有新的,干净的方式与CORS头。如果服务器在其响应中添加一个
Accept-Control-Allow-Origin::
头,任何人(使用现代浏览器)都可以通过普通的Ajax调用使用数据


如果服务器不允许您使用其数据,您就倒霉了。

看起来您正试图向blockchain.info发送AJAX请求并检索JSON提要。幸运的是,他们增加了对CORS的支持

只需将参数
cors=true
传递到请求的url(例如
http://blockchain.info/ticker?cors=true
)并且您应该能够获取数据


看起来CORS只支持少数API调用。

看起来您正在尝试向blockchain.info发送AJAX请求并检索JSON提要。幸运的是,他们增加了对CORS的支持

只需将参数
cors=true
传递到请求的url(例如
http://blockchain.info/ticker?cors=true
)并且您应该能够获取数据


看起来CORS只支持根据的几个API调用。

这有帮助吗?我无法更改服务器设置,但它确实有一个我正在尝试的使用XmlHttpRequest的示例。这有帮助吗?我无法更改服务器设置,但它确实有一个使用XmlHttpRequest的示例,我正在尝试使用该示例
//var url = 'https://coinbase.com/api/v1/currencies/exchange_rates';
var url = 'http://blockchain.info/ticker';
$.ajax({
    type: 'GET',
    url: url,
    //jsonpCallback: 'jsonCallback',
    contentType: 'application/json',
    //async: false,
    //dataType: 'jsonp',

    //xhrFields: { 
    // for CORS?
    //  withCredentials: false
    //},
    success: function (json) {
        debugger;
    },
    error: function (json) {
     debugger;
    }
});
$.ajax({
            url: "http://yoururl",
            type: "POST",
            crossDomain: true,
            data: JSON.stringify(somejson),
            dataType: "json",
            success: function (response) {
                var resp = JSON.parse(response)
                alert(resp.status);
            },
            error: function (xhr, status) {
                alert("error");
            }
        });
response = HttpResponse(json.dumps('{"status" : "success"}'))
response.__setitem__("Content-type", "application/json")
response.__setitem__("Access-Control-Allow-Origin", "*")

return response