配置nginx支持跨域访问
解决方案:
因为nginx默认是禁止跨域访问的,所有当跨域请求数据的时候拿不到相应的数据,特别是字体。
生产环境介绍:
访问www.a.com的时候,需要调用www.b.com下的css、js、image、字体等,因为设计到跨域,所以nginx拒绝了我的字体的请求,所以在www.b.com下面的server中加了一个location即可。
1
2
3
4
|
# 由于字体使用跨域的方式进行的调用,默认浏览器拒绝访问,加上这个location就可以在其他域名下访问这个域名的字体了 location ~* \.(eot|ttf|woff|svg|otf|woff2)$ { add_header Access-Control-Allow-Origin *; } |
生产环境遇到的问题用上述方法解决了,下面说说如何允许跨域:
在需要允许跨域的server中下面加上下面三句代码即可:
1
2
3
4
5
6
7
8
9
|
# 该字段是必须的。它的值要么是请求时Origin字段的值,要么是一个*,表示接受任意域名的请求。 add_header 'Access-Control-Allow-Origin' '*' ; # 该字段可选。它的值是一个布尔值,表示是否允许发送Cookie。 # 默认情况下,Cookie不包括在CORS请求之中。设为true,即表示服务器明确许可, # Cookie可以包含在请求中,一起发给服务器。这个值也只能设为true, # 如果服务器不要浏览器发送Cookie,删除该字段即可 add_header 'Access-Control-Allow-Credentials' 'true' ; # 该字段是必须的,用来列出浏览器的CORS请求会用到哪些HTTP方法,上例是PUT。 add_header 'Access-Control-Allow-Methods' '*' ; |
喜欢请赞赏一下啦^_^
微信赞赏
![](https://oss-pic.oss-cn-hangzhou.aliyuncs.com/wepayrandom_380.jpg)
支付宝赞赏
![](https://oss-pic.oss-cn-hangzhou.aliyuncs.com/alipayrandom_380.jpg)