加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在CakePHP应用程序中启用CORS

发布时间:2020-12-13 18:06:09 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试为Cake PHP中内置的API启用CORS,以便可以使用AppController中的以下内容访问所有请求: public function beforeFilter(){ header("Access-Control-Allow-Origin: *");} 这是在错误的地方吗?由于请求仍然被阻止. 更新:似乎这确实工作但是因为我做
我正在尝试为Cake PHP中内置的API启用CORS,以便可以使用AppController中的以下内容访问所有请求:
public function beforeFilter()
{
    header("Access-Control-Allow-Origin: *");
}

这是在错误的地方吗?由于请求仍然被阻止.

更新:似乎这确实工作但是因为我做的事情如下:

header('Content-Type: application/json');
echo json_encode(array('message'=>'Hello world!'));

在我的一些方法中,它表现为好像它覆盖了标头设置AppController,所以它没有出现在JSON调用的响应中.
有任何想法吗?

更新2:如下所示返回JSON,修复了问题:

$this->response->type('json');
$this->response->body(json_encode(array('message'=>'Hello world!')));

显然在Cake中使用header()打破了以前的标题?

你可以使用cake response对象来做到这一点;
$this->response->header('Access-Control-Allow-Origin','*');

有关响应对象的更多信息;
http://book.cakephp.org/2.0/en/controllers/request-response.html#setting-headers

但是,beforeRender()回调似乎更合乎逻辑.

另一种选择是在你的apache vhost或htaccess中添加这个头文件,可以在Html5Boilerplate的htaccess文件中找到,这是一个非常有趣的事情(有详细记录),因为它包含很多优化,可以很好地与cakephp一起工作好;

https://github.com/h5bp/server-configs-apache/blob/master/dist/.htaccess

http://html5boilerplate.com/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读