關於Vue/axios下跨域cookie的處理

通常在生產環境下儘可能能夠經過nginx等反向代理,把vue前端和api接口處理成同一端口和域名。html

在開發和測試時,也能夠使用兼容性比較好的瀏覽器進行。前端

凡事有例外,如下分別對待不一樣狀況:vue

服務器端ios

  1. 配置cors便可nginx

客戶端chrome

  1. 配置Axios.defaults.withCredentials = true,這樣大部分瀏覽器都支持跨域cookie了,反正新版本chrome下無問題。後端

  2. 但放在IE11(默認設置)下依然出現沒法獲取cookie的問題,至此,查資料查到【P3P解決cookie存取的跨域問題(http://www.cnblogs.com/love2w...】,依照文中記載,在nginx追加P3P的響應頭,解決了IE下的cookie問題。api

如下爲Nginx配置,以備忘:跨域

location /xx-erp {

        access_log  /data/nginx/logs/zx3fund.log  main;

        root   /data/nginx/html;
        proxy_pass http://192.168.10.60:811/xx-erp/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        add_header P3P "CP=CAO PSA OUR";

        index  index.html index.htm;
    }

IE下截圖:瀏覽器

clipboard.png

clipboard.png

另外,還有一種方式,在開發階段,用vue中間件proxyTable,把後端接口,代理爲與前端執行時的域一致

相關文章
相關標籤/搜索