我在CakePHP 1.3中创建了一个JSON webservice。CakePHP 1.3上的CORS
我希望能够将来自不同服务器的AJAX请求发送到此Web服务。
我知道这是Cake 2+中的一个小插曲,但我不能为我的生活找出v1.3。 Based on what I have found in the docs,我试图在我的控制器如下:
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 ERR_INVALID_RESPONSE
。
我试图做$this->response->header
而不是$this->header
,和同样的问题。我也试过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>
虽然这似乎并没有做任何事情。我在Apache的mods-available文件夹中也有mod_headers.load
。
任何人都知道如何在CakePHP 1.3中设置Access-Control-Allow-Origin标头?