【问题标题】:Unable to post data using JSONP on Cross Domain无法在跨域上使用 JSONP 发布数据
【发布时间】:2013-09-26 20:34:51
【问题描述】:

我们有一个场景,我们需要将数据从我们的域 (x.com) 发布到不同的域 (y.com)。 y.com 上的操作归因于HTTPPost,并且可以更改。但是在使用AJAXJSONPHTTPMethod POST 将数据发布到y.com 时,请求会自动转换为HTTPMethod GET

【问题讨论】:

    标签: jquery .net ajax asp.net-mvc


    【解决方案1】:

    JSONP 请求是 GET 请求,不能使用 POST 请求进行。如果您想发送发布请求,请查看跨源资源共享。

    【讨论】:

      【解决方案2】:

      您不能使用JSONP 发布(查看herehere),因为它只是doesn't work that way - 它创建一个<script> 元素来获取数据,这必须通过GET 请求完成。 JSONP方案不使用XmlHttpRequest对象,所以不是标准理解方式的AJAX请求,但内容仍然是动态访问的——对最终用户来说没有区别。

      JSONP 确实可以用来克服same origin policy 的限制,但您也可以使用CORS,在现代浏览器中实现alternative 到带有Padding 的JSON。

      【讨论】:

      • 感谢您的回答。
      【解决方案3】:

      作为一种解决方法,您可以做的是使用 postMessage 解决跨域通信,这是 HTML5 的一个新功能。但是,为了解决它,您需要使用 iframe,如果您不想显示某些 iframe,您可以使用 display:none css 属性创建 1x1px。 这将使您实现目标。

      【讨论】:

        猜你喜欢
        • 2013-01-02
        • 2020-08-05
        • 2011-12-08
        • 2012-11-05
        • 2011-07-27
        • 1970-01-01
        • 2015-02-20
        • 2016-07-20
        • 2013-10-31
        相关资源
        最近更新 更多