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

Rus*_*hah 5 php codeigniter

错误:从'来源' http://示例访问' 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');
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

我尝试了这个解决方案,但它无法工作,请你帮帮我如何解决?以及如何从URL中删除index.php?

Tam*_*gun 12

允许跨站点脚本编写可能会导致安全问题,请尝试调整codeigniter选项;

  1. 转到application/config/config.php文件,
  2. 找到$config['base_url'] = "";和
  3. 将项目文件夹的路径作为值放置.

     $config['base_url']="http://localhost/yourProjectFolder/";
    
    Run Code Online (Sandbox Code Playgroud)


Lat*_*san 8

尝试允许GET和OPTIONS

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

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

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

要么

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


小智 5

只是我们想在域名前面添加“www”。

转到 application/config/config.php 文件,

 $config['base_url']="http://yourdoamin.com";
Run Code Online (Sandbox Code Playgroud)

改成

 $config['base_url']="http://www.yourdoamin.com";
Run Code Online (Sandbox Code Playgroud)