配置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'  '*' ;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM