解決方案:
因為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'
'*'
;
|