CakePHP 1.3上的CORS

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

我正在CakePHP1.3中创建一个JSON Web服务

我希望能够将来自不同服务器的AJAX请求发送到此Web服务

我知道这对Cake 2+来说是轻而易举的事,但我一生都无法在v1.3中找到它,我已尝试在控制器中执行以下操作:

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方法只是PHP
header
函数的包装器:

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