微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Zend Framework 2 – 来自其他服务器的AJAX请求

我有2个域(域A,域B).

在域A上放置了ZF2应用程序,一切正常.

在域B上放置着陆页(具有用于收集数据的表单的小站点).

从登陆页面我想将表单数据发送到域A上的应用程序(AJAX请求).

不幸的是,域A上的ZF2应用程序没有收到数据,也没有显示结果.
当我从ZF2应用程序所在的同一域制作AJAX请求时,一切正常.

我尝试过使用JSONP但没有成功.

我没有任何其他线索如何强制这个工作.

解决方法:

正如Bodgan的回答所说,这是一个浏览器安全问题,而不是ZF2问题.一种流行的解决方法是更改​​域A的ACCESS-CONTROL-ALLOW-ORIGIN以允许来自域B的请求.这个和其他解决方案在Mozilla Developer Network(MDN)页面上讨论HTTP access control (CORS).

基本上,您需要向接收服务器(域A)指示可以响应资源请求.您可以在位于域A的Web根目录中的.htaccess文件中执行此操作.以下是一些简单的示例代码,它向域A指示它应响应来自所有域的资源共享请求:*.与上述相关的MDN文章对“跨域资源共享(CORS)”进行了更深入的讨论.请记住,存在安全隐患,在大多数情况下,您不希望将服务器打开到来自* origin的请求,而是打开由您自己控制的特定主机.

Options +FollowSymlinks
RewriteEngine on

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐