Nginx解决跨域资源问题:No 'Access-Control-Allow-Origin' header is present on the requested resource.

时间:2022-07-24
本文章向大家介绍Nginx解决跨域资源问题:No 'Access-Control-Allow-Origin' header is present on the requested resource.,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

文:毛毛,首发自:maomao.ink,转载请保留此行。

刚刚为网站添加了www解析:www.maomao.ink 添加完之后打开网址,发现我的iconfont图标都不见了,变成了小框框!

运行浏览器检查,发现报了4个错:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

博友告诉我,报这个错是因为跨域访问了,需要修改配置。

我用的是Nginx解析服务,所以需要修改nginx.conf文件配置。

将下面代码插入到域名所在server配置下

location / {
    add_header 'Access-Control-Allow-Origin' $http_origin;
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
    add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
    if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain; charset=utf-8';
        add_header 'Content-Length' 0;
        return 204;
    }
}

我的配置是这样的,仅供参考:

重启服务器

如果你的服务器是linux系统,需要用以下命令进行重启:

/opt/openresty/nginx/sbin/nginx -s reload

重启之后,刷新一下网页,丢失的资源就都回来了~

注:如果刷新无效,试试清除浏览器缓存再刷新一次

参考资料:https://blog.csdn.net/envon123/article/details/83270277

祝你成功!!!

我是谁?

  • 90后程序媛,写代码,也写软文
  • 喜欢阅读,喜欢聆听,喜欢分享
  • 热爱挑战各种稀奇古怪的事物(比如这个博客)
  • 我是毛毛,感恩遇见你!