前後端分離的專案,很容易遇到跨域問題。
@webfilter
("/*"
)public
class
corsfilter
implements
filter
public
void
destroy()
public
void
dofilter
(servletrequest req, servletresponse res, filterchain chain)
throws ioexception, servletexception
; set alloworigins =
newhashset
(arrays.
aslist
(allowdomains));
string originheads = request.
getheader
("origin");
if(alloworigins.
contains
(originheads)
) chain.
dofilter
(req, response);}
public
void
init
(filterconfig fconfig)
throws servletexception
}
說明:
配置跨域訪問的最簡單的方式是用萬用字元 * ,(就是不安全,所有的請求都能跨域),如下**:
response.
setheader
("access-control-allow-origin"
,"*"
);
這種方式不爽的地方就是前端瀏覽器不能帶cookie資訊(前端不能用帶cookie的請求模式)如下:
response.
setheader
("access-control-allow-origin"
,"*");
response.
setheader
("access-control-allow-credentials"
,"true");
//保持跨域 ajax 時的 cookie
伺服器端 access-control-allow-credentials = true時,引數access-control-allow-origin 的值不能為 『*』 。否則不起作用允許多個網域名稱跨域訪問時,根據上面的方式去設定乙個資料集合就可以了。
Spring Boot允許跨域請求
1 專案下新建乙個config包 專門用於放置配置檔案 但是這只是最佳目錄 實際上spring boot對與檔案結構是沒有要求的 只用註解來判斷每個類的作用 2 新建乙個檔案類corsconfig,編寫以下 package com.xhwl.erp.config import org.springf...
SpringBoot允許跨域請求
例項 import org.springframework beans factory annotation value import org.springframework context annotation bean import org.springframework context ann...
Django允許跨域請求
解決跨域請求問題可以從前端解決也可以通過配置後台解決,通過配置後台允許跨域可以解決前端的一些麻煩。django通過中介軟體實現允許跨域。命令列輸入 pip install django cors headers在相應位置新增以下 corsheaders middleware classes cors...