无法在跨域上使用JSONP发布数据

时间:2013-09-21 14:50:05

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

我们需要将数据从我们的域(x.com)发布到其他域(y.com)。 y.com上的操作归因于HTTPPost,可以更改。但在使用AJAXJSONP HTTPMethod POST向y.com发布数据时,请求会自动转换为HTTPMethod GET

3 个答案:

答案 0 :(得分:4)

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

JSONP确实可用于克服same origin policy限制,但您也可以使用现代浏览器CORS中实现的alternative与填充的JSON。

答案 1 :(得分:0)

JSONP请求是GET请求,无法使用POST次请求。如果您想发送一个帖子请求,请查看跨源资源共享。

答案 2 :(得分:0)

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