CakePHP 1.3上的CORS
我正在CakePHP1.3中创建一个JSON Web服务 我希望能够将来自不同服务器的AJAX请求发送到此Web服务 我知道这对Cake 2+来说是轻而易举的事,但我一生都无法在v1.3中找到它,我已尝试在控制器中执行以下操作:CakePHP 1.3上的CORS,php,ajax,cakephp,cakephp-1.3,Php,Ajax,Cakephp,Cakephp 1.3,我正在CakePHP1.3中创建一个JSON Web服务 我希望能够将来自不同服务器的AJAX请求发送到此Web服务 我知道这对Cake 2+来说是轻而易举的事,但我一生都无法在v1.3中找到它,我已尝试在控制器中执行以下操作: public $components = array('RequestHandler'); function beforeFilter() { Configure::write('debug', 0); $this->header('Access
public $components = array('RequestHandler');
function beforeFilter() {
Configure::write('debug', 0);
$this->header('Access-Control-Allow-Origin','*');
$this->header('Access-Control-Allow-Methods','*');
$this->header('Access-Control-Allow-Headers','X-Requested-With');
$this->header('Access-Control-Allow-Headers','Content-Type, x-xsrf-token');
$this->header('Access-Control-Max-Age','172800');
}
不幸的是,这会导致500错误\u无效\u响应
我试图做$this->response->header
而不是$this->header
,同样的问题。我还尝试了标题
而不是$this->header
,并且再次得到了500的服务器响应。我还尝试将header
块移动到控制器中的我的操作、顶级app_controller.php文件、bootstrap.php文件以及视图文件本身(尝试了header
、$this->header
和$this->response->header
的每一个变体)。删除Configure::write('debug',0)代码>无法解决此问题
见鬼,我的.htaccess
文件中甚至有这个:
<IfModule mod_headers.c>
<FilesMatch "\.(json)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
标题集访问控制允许原点“*”
虽然这似乎没什么作用。我有mod_头。在Apache中的mods可用文件夹中加载
有人知道如何在CakePHP 1.3中设置Access Control Allow Origin标头吗
header("Access-Control-Allow-Origin: *");
我知道这是一篇老文章,但我不想回答这个问题来帮助别人。是正确的,但不清楚为什么。在CakePHP 1.3中,在控制器库中,header方法只是PHPheader
函数的包装器:
function header($status) {
header($status);
}
因此,$this->header
应该可以很好地工作。错误在于复制Java样式以设置带有两个参数的标题:
$this->header('Access-Control-Allow-Origin','*')代码>
对于PHP land,您必须将其切换到:
$this->header('Access-Control-Allow-Origin: *');
你在哪里添加这条线?@BrendaOliviaMartis我相信你可以在控制器的任何地方设置它。我在AppController->beforeFilter