use*_*459 4 php ajax cross-domain-policy zend-framework2
我有2个域(域A,域B).
在域A上放置了ZF2应用程序,一切正常.
在域B上放置着陆页(具有用于收集数据的表单的小站点).
从登陆页面我想将表单数据发送到域A上的应用程序(AJAX请求).
不幸的是,域A上的ZF2应用程序没有收到数据,也没有显示结果.当我从ZF2应用程序所在的同一域制作AJAX请求时,一切正常.
我尝试过使用JSONP但没有成功.
我没有任何其他线索如何强制这个工作.
正如Bodgan的回答所说,这是一个浏览器安全问题,而不是ZF2问题.解决此问题的一种常用方法是更改ACCESS-CONTROL-ALLOW-ORIGIN域A以允许来自域B的请求.此处和其他解决方案在用于HTTP访问控制(CORS)的Mozilla开发人员网络(MDN)页面上进行了讨论.
基本上,您需要向接收服务器(域A)指示可以响应资源请求.您可以在.htaccess放置在域A的Web根目录中的文件中执行此操作.下面是一些简单的示例代码,它向域A指示它应该响应来自所有域的资源共享请求:*.与上述相关的MDN文章对"跨域资源共享(CORS)"进行了更深入的讨论.请记住,存在安全隐患,并且在大多数情况下,您不希望将服务器打开到来自*源的请求,而是打开由您自己控制的特定主机.
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"
Run Code Online (Sandbox Code Playgroud)