日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

關(guān)于跨域 Response to preflight request doesn‘t pass access control check

作者:請你保持微笑 更新時間: 2022-03-14 編程語言

做項目的時候由于訪問了不同的服務器,然后導致了跨域問題,報錯情況為:
has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: Redirect is not allowed for a preflight request。

從網(wǎng)上找了解決辦法,也就是采用CORS方案,在要訪問的跨域服務器上的返回頁面加上標頭:
在這里插入圖片描述response.setHeader(“Access-Control-Allow-Origin”,request.getHeader(“Origin”));
response.setHeader(“Access-Control-Allow-Credentials”, “true”);
response.addHeader(“Access-Control-Allow-Methods”, “POST, GET, OPTIONS, DELETE, PUT”);
response.addHeader(“Access-Control-Allow-Headers”, request.getHeader(“Access-Control-Request-Headers”));
response.addHeader(“Access-Control-Max-Age”, “120”);

但是加了以后不管用。

我注意到后面有一句Redirect is not allowed for a preflight request:重定向不允許preflight request請求。我尋思著我這也沒重定向啊。
于是我查看了我的請求:
在這里插入圖片描述
發(fā)現(xiàn)我的請求URL:http://localhost:8080/ReadCard2后面好像少了一個斜杠’/’
換成http://localhost:8080/ReadCard2/果然沒有報跨域問題了!

要是還存在報錯,那么你的請求可能是復雜請求而部署簡單請求,要是復雜請求,服務器一般不允許訪問的,復雜請求發(fā)送之前會發(fā)送一個預檢請求,詢問服務器自己有沒有權(quán)限。最好在過濾器里邊處理預檢請求(也就是返回指定的http的header,這些header的作用是給前端訪問權(quán)限),因為你的預檢請求會到不了jsp,因此jsp里邊的代碼進行預檢請求的處理是無效的,根本不會執(zhí)行到,serverlet里邊我不知道能不能處理預檢請求。

原文鏈接:https://blog.csdn.net/qq_39286701/article/details/118937948

欄目分類
最近更新