CodeIgniter 3-set_header不起作用

问题描述 投票:0回答:1

[当我尝试构建启用CORS的RESTful API时,会发生此问题。

当我将其放入视图文件中时(我正在使用CodeIgniter)

// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
    $this->output->set_header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}", true);
    $this->output->set_header('Access-Control-Allow-Credentials: true', true);
    $this->output->set_header('Access-Control-Max-Age: 86400', true);    // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
        $this->output->set_header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS", true);         

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
        $this->output->set_header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}", true);

}
$this->output->set_header("Content-type: text/x-json", true);

以上设置标头的代码均无效。即使我使用PHP自己的header()函数。

我必须设置.htaccess文件的标题才能使CORS正常工作。

这里是什么问题?我希望能够从CodeIgniter的视图文件中设置标题。

帮助。

PS:我正在使用CI 3.1.2

http-headers codeigniter-3 response-headers
1个回答
0
投票

请使用一些东西:

 $response = (new \CI_Output())
                ->set_status_header(200)
                ->set_header('Content-Type: application/json')
                ->set_header('Access-Control-Allow-Origin: *')
                ->set_header('Access-Control-Max-Age: ');
            $response->_display();
            session_write_close();
            exit;
© www.soinside.com 2019 - 2024. All rights reserved.