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

學(xué)無先后,達(dá)者為師

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

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

作者:請(qǐng)你保持微笑 更新時(shí)間: 2022-03-14 編程語言

做項(xiàng)目的時(shí)候由于訪問了不同的服務(wù)器,然后導(dǎo)致了跨域問題,報(bào)錯(cuò)情況為:
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方案,在要訪問的跨域服務(wù)器上的返回頁面加上標(biāo)頭:
在這里插入圖片描述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請(qǐng)求。我尋思著我這也沒重定向啊。
于是我查看了我的請(qǐng)求:
在這里插入圖片描述
發(fā)現(xiàn)我的請(qǐng)求URL:http://localhost:8080/ReadCard2后面好像少了一個(gè)斜杠’/’
換成http://localhost:8080/ReadCard2/果然沒有報(bào)跨域問題了!

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

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

欄目分類
最近更新