处理跨域请求被CORS策略阻止的办法
本文最后更新于 754 天前,其中的信息可能已经有所发展或是发生改变。

在写博客文章的时候尝试在API服务器上加载hymmnos.ttf发现

CORS policy: No ‘Access-Control-Allow-Origin’header is present on the requested resource.

CORS policy对于用户与服务器的安全性有很大的作用,使用搜索引擎后发现这个可以通过修改Nginx服务器的配置文件解决,参照http://www.shuchengxian.com/article/576.html

另外,几个小提示

  • 改的是你的API服务器的nginx配置文件,不是调用API服务器资源的服务器nginx配置文件
  • 像我自己的服务器Access-Control-Allow-Origin后加上了’https://blog.shanwer.top’,这指的是允许哪个url跨域调用你API服务器的静态文件,记得一定要带’,然后你要不怕被滥用也可以改成*,加不加’无所谓
  • 不要一股脑啥文件都允许跨域调用,这样做和chmod 777 /无异,人家直接把你当成公共CDN了(不是),像我就是几个常用的比如ttf,svg啥的允许调用
location ~ .*\.(eot|ttf|woff|woff2|svg)$ {
            add_header Access-Control-Allow-Origin 'https://blog.shanwer.top';
            add_header Access-Control-Allow-Headers X-Requested-With;
            add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
        }

对了,上面提到用到跨域资源加载的文章是

上面截止到2020年9月20日 下午8:21

最近为了吃顿饭颇下一顿功夫,如果使用javalin框架的话,则需要这样操作,header加入允许跨域请求才可被其他页面跨域调用json(以下为java代码,截自本人的一个项目)

var returnJsonApp = Javalin.create(/*config*/)
        .before(ctx -> ctx.header("Access-Control-Allow-Origin", "*"))//后端还需要开发跨域,否则无法调用API
        .get("/", ctx -> ctx.json(new getJson().getJson()))
        .start(8080);
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇