Codeigniter CORS 策略:没有“Access-Control-Allow-Origin”错误如何解决?

新手上路,请多包涵

错误:从源 http://example 访问“ http://www.example.com//assets/global/plugins/font-awesome/fonts/fontawesome-webfont.woff2?v=4.4.0 ”字体 .com 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://example.com ”。

解决方案:

 <?php
header('Access-Control-Allow-Origin: *');

class Home extends CI_Controller {
    public function index()
    {
        $this->load->view('master');
    }
}
?>

我尝试了这个解决方案,但它不起作用,你能帮我解决一下吗?以及如何从 URL 中删除 index.php?

原文由 Rushabh Shah 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

尝试允许 GET & OPTIONS

 <?php
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: GET, OPTIONS");

如果上述方法不起作用,请尝试通过 .htaccess (对于 apache)或在 nginx 服务器块中允许访问字体资源 - 添加以下行:

 # Apache config
<FilesMatch ".(eot|ttf|otf|woff)">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>

或者

# nginx config
if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){
    add_header Access-Control-Allow-Origin *;
}

原文由 Latheesan 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 Codeigniter __construct 中使用 header() 函数

    public function __construct()
            {
                parent::__construct();
                $this->load->model('api_model');
                $this->load->library('form_validation');

                Header('Access-Control-Allow-Origin: *'); //for allow any domain, insecure
                Header('Access-Control-Allow-Headers: *'); //for allow any headers, insecure
                Header('Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE'); //method allowed

//Or

        header('Access-Control-Allow-Origin: website_url');
        header("Content-Type: application/json; charset=UTF-8");
        Header('Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE'); //method allowed
            }

原文由 Billu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏