公司項目從前后端不分離轉到前后端分離
首先遇到的問題就是前后端分離的時候跨域的問題
但是當跨域成功配置並且能訪問成功的時候發現
每次客戶端的請求都會發送兩次
第一次是OPTIONS的請求,然后才是正常的請求
查閱資料得到的結論是:
第一個OPTIONS的請求是由Web服務器處理跨域訪問引發的。
OPTIONS是一種“預檢請求”,瀏覽器在處理跨域訪問的請求時如果判斷請求為復雜請求,則會先向服務器發送一條預檢請求,根據服務器返回的內容瀏覽器判斷服務器是否允許該請求訪問。如果web服務器采用cors的方式支持跨域訪問,在處理復雜請求時這個預檢請求是不可避免的。
一句話概括:因為我們公司的token通過header傳遞所以導致了瀏覽器判斷該請求是復雜請求,所以要先通過OPTIONS請求進行預檢查
解決方法
設置Access-Control-Max-Age(指定本次預檢請求的有效期,單位秒)
nginx配置增加
#設置一天的過期時間
add_header Access-Control-Max-Age 86400;
問題解決!
原文:https://blog.csdn.net/qq_35224032/article/details/82179428
