java配置允許跨域請求

2021-09-04 12:20:24 字數 1386 閱讀 8069

前後端分離的專案,很容易遇到跨域問題。

@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...