我有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 举报,一经查实,本站将立刻删除。