Ela's Notes
So Be It


Hitokoto ·
[Nginx]允许ajax跨域访问
Elatis   后端   865 | 文章字数: 1042 字

镇楼用的肥宅快乐人快不够用了怎么办!

米其林肥宅又没有女朋友,对吃穿没什么需求,物价又那么贵,只好看上哪个如花似玉的域名就买下来才能过日子这样子.
也许以后我会需要多个域名,但现在域名不得不承认实在是太多了,只好都让它们暂时解析一下我的博客
ps:目前域名如下(带www的次级域名也能访问)

但问题又来了,由于这个主题使用了一些pjax/ajax异步请求,而浏览器默认禁止跨域访问,就会导致一些样式无法加载(现在这个主题还好,前一个主题全是用异步加载的)
虽然在php中设置header也能达到效果,但是由于typecho和主题对我来说完全就是一个黑盒,并不知道该加在哪里,数次尝试无效后只好在nginx的配置里进行设置

设置方法很简单,只要在虚拟主机配置文件中添加这几行就可以了

location / {
        //这三行
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Credentials false;
        add_header Access-Control-Allow-Methods *;
        //这三行
}

第一行表示允许跨域访问的域名,*表示允许所有域名跨域访问,当然这有点不安全,可以把*替换为详细域名,如

add_header Access-Control-Allow-Origin example.com;

每一行只能添加一个,如果要多个域名就要写多次

第二行表示是否可以将对请求的响应暴露给页面

第三行表示允许的跨域请求方式,同样*表示全部方式都可以,如果你想要指定某种方式,就把*替换:

add_header Access-Control-Allow-Methods GET;

同样,一行只能写一个,要多个就重复写

完成后重新加载一下nginx配置即可:

systemctl reload nginx

评论

发送失败 可能是您的发言太频繁或联系方式有误

提交评论

Theme LightWhite Made by Archeb With
自豪地使用Typecho
© 2017 - 2020 elatis.cn 版权所有 ICP证: 冀ICP备18008017号-1
全站共 19.11 W 字
博客已经运行了