如何制作跨域请求

这个问题在这里已经有了答案:

  • 什么是JSONP? [复制] 7个答案

  • 您可以使用XMLHttpRequest对象进行跨域请求。 这是使用称为“跨源资源共享”的东西完成的。 请参阅:http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

    简而言之,当向服务器发出请求时,服务器可以使用Access-Control-Allow-Origin标头进行响应,该标头将允许或拒绝该请求。 浏览器需要检查这个标题,如果允许的话,它会继续执行请求过程。 如果不是,浏览器将取消请求。

    你可以在这里找到更多信息和工作示例:http://www.leggetter.co.uk/2010/03/12/making-cross-domain-javascript-requests-using-xmlhttprequest-or-xdomainrequest.html

    JSONP是一种替代解决方案,但你可能会认为这有点破解。


    做一个跨域的AJAX调用

    您的网络服务必须支持方法注入才能执行JSONP。

    您的代码看起来很好,如果您的Web服务和您的Web应用程序托管在同一个域中,它应该可以正常工作。

    当你用dataType做一个$ .ajax时:'jsonp'意味着jQuery实际上是向查询URL添加一个新参数。

    例如,如果您的URL是http://10.211.2.219:8080/SampleWebService/sample.do那么jQuery将添加?callback = {some_random_dynamically_generated_method}。

    这种方法实际上是附加在窗口对象中的一种代理。 这没什么特别的,但看起来像这样:

    window.some_random_dynamically_generated_method = function(actualJsonpData) {
        //here actually has reference to the success function mentioned with $.ajax
        //so it just calls the success method like this: 
        successCallback(actualJsonData);
    }
    

    检查以下内容以获取更多信息

    http://json-p.org/

    使用jQuery创建跨域ajax JSONP请求


    如果您愿意传输某些数据并且无需担保(任何公共信息),则可以使用CORS代理,这非常容易,您不必在代码或服务器端更改任何内容(特别是它不像Yahoo API或OpenWeather那样是你的服务器)。 我用它来获取XMLHttpRequest的JSON文件,它工作正常。

    链接地址: http://www.djcxy.com/p/8341.html

    上一篇: How to make cross domain request

    下一篇: What Is Difference Between Json and Jsonp?