瀏覽器報`The value of the ‘Access-Control-Allow-Origin‘ header in the response must not be the wildcard
歡迎訪問moshuying.top檢視更多資訊
詳細錯誤資訊 Access to XMLHttpRequest at 'http://localhost:7894/Login' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
前端 vue-antd-admin
後端 java servlet
前後端分離的專案中肯定會碰到跨域的問題,跨域的原因還是為了安全。最近在做一個專案的時候發現,即使我已經設定了跨域資訊,前端還是報這個跨域錯誤。
後來找了有經驗的後臺來幫忙也是弄了很久都沒有解決問題,後來我慢慢看請求頭和仔細尋找前後端的程式碼終於發現了端倪。
我專案中失敗的請求頭
參考自MDN中失敗的一個請求頭
可以發現多了Authorization
和Accept
兩個請求頭,這兩個請求頭來自前端專案中的src/utils/request.js
對請求經行了簡單的安全設定,使得請求中攜帶了安全資訊,檢視原始碼發現程式碼中設定了
axios.defaults.withCredentials= true
表示客戶端想要攜帶驗證資訊,這部分功能需要後臺支援,而後臺supportsCredentials
一般被設定為false
即不支援客戶端攜帶驗證資訊
對後臺程式碼進行修改
protected void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws IOException, ServletException {
res.addHeader("Access-Control-Allow-Origin", req.getHeader("Origin"));
res.addHeader("Access-Control-Allow-Methods", "*");
res.addHeader("Access-Control-Allow-Headers", "Accept,Authorization,DNT,Content-Type,Referer,User-Agent");
res.addHeader("Access-Control-Allow-Credentials","true"); // 允許攜帶驗證資訊
chain.doFilter(req, res);
}
問題解決
參考連結
相關文章
- No ‘Access-Control-Allow-Origin’ headerHeader
- 【瀏覽器】瀏覽器基本工作原理瀏覽器
- 瀏覽器瀏覽器
- Chrome 瀏覽器修改 UA 模擬其它瀏覽器,包括移動瀏覽器Chrome瀏覽器
- 不是所有 Response 類都有 header () 方法Header
- 基石-初見瀏覽器(一):瀏覽器渲染瀏覽器
- Min瀏覽器: 更快更輕量瀏覽器瀏覽器
- .net火狐瀏覽器 ie瀏覽器 判斷瀏覽器
- QQ瀏覽器隱私洩露報告瀏覽器
- microsoft edge是ie瀏覽器嗎 edge瀏覽器和ie瀏覽器一樣嗎ROS瀏覽器
- 前端面試瀏覽器系列:瀏覽器快取前端面試瀏覽器快取
- “木偶”瀏覽器瀏覽器
- 瀏覽器原理瀏覽器
- 瀏覽器核心瀏覽器
- vivaldi瀏覽器瀏覽器
- Mozilla瀏覽器瀏覽器
- 瀏覽器引擎瀏覽器
- [瀏覽器]LocalStorage瀏覽器
- 瀏覽器渲染瀏覽器
- js檢測搜狗瀏覽器、百度瀏覽器、微信瀏覽器程式碼例項JS瀏覽器
- 判斷當前瀏覽器是不是微信瀏覽器瀏覽器
- X5 瀏覽器核心調研報告瀏覽器
- ajax 請求攜帶cookie 瀏覽器報錯Cookie瀏覽器
- firefox瀏覽器開啟網頁報錯Firefox瀏覽器網頁
- Edge瀏覽器被搜狗瀏覽器篡改的解決方法瀏覽器
- javascript判斷當前瀏覽器是不是微信瀏覽器JavaScript瀏覽器
- 使用chrome瀏覽器驅動自動開啟瀏覽器Chrome瀏覽器
- [BUG反饋]IE瀏覽器,百度瀏覽器,搜狗瀏覽器批量操作功能都不相容!!!!傲遊、火狐、谷歌瀏覽器可以瀏覽器谷歌
- 瀏覽器安全(一)瀏覽器
- 瀏覽器事件解析瀏覽器事件
- 瀏覽器快取瀏覽器快取
- 使用瀏覽器事件瀏覽器事件
- IE瀏覽器相容瀏覽器
- 瀏覽器渲染流程瀏覽器
- 瀏覽器全屏API瀏覽器API
- 【瀏覽器】聊聊DOM瀏覽器
- 瀏覽器沙箱模型瀏覽器模型
- 瀏覽器渲染引擎瀏覽器