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"

转载注明原文:php – Zend Framework 2 – 来自其他服务器的AJAX请求 - 代码日志