cors (cross-origin resource sharing)是由w3c制定的一種跨域資源共享技術標準
,其目的就是為了解決前端的跨域請求。最常見的前端跨域請求解決方案是jsonp
,但 是jsonp只支援 get 請求,這是乙個很大的缺陷,而cors則支援多種http請求方法。
1、get、post和head請求
以get
為例,瀏覽器傳送請求時,請求頭request攜帶引數:
如果服務端支援cors
,則服務端會給出響應資訊:
其中access-control-allow-origin
,用來記錄可以訪問該資源的域。當瀏覽器收到這樣的響應頭資訊之後,提取出access-control-allow-origin
欄位中的值,發現該值包含當前頁面所在的域,就會允許這個跨域請求,不再限制。
整個流程就一步,只需要對後端**進行處理。這個流程主要針對get
、post
以及head
請求,並且沒有自定義請求頭。
2、delet、put及自定義請求頭的請求
以put
請求為例,整個請求處理會經過兩個步驟:探測請求、真正的請求
①傳送乙個options
請求 - 探測請求
這個請求會向服務端詢問是否具備put
許可權,服務端給瀏覽器乙個響應
瀏覽器分析請求頭欄位,發現是支援的請求,則進入第二步。
②傳送put
請求
服務端響應:
到此為止,put
請求完成。
實際上使用的就是spring的@crossorigin
註解。
1、建立乙個springboot工程 - 8080埠
①controller層配置跨域 - 方法註解跨域
value:支援的域
maxage:探測請求有效期,預設1800秒,即在完成一次請求後的30分鐘內不再需要傳送探測請求
allowedheaders:允許的請求頭,*
表示所有請求頭都允許
②全域性配置跨域
@configuration
public
class
mywebmvcconfig
implements
webmvcconfigurer
2、建立springboot工程 - 8081埠
在resources/static
檔案下建立html檔案,用於傳送請求。
"getdiv"
>
<
/div>
"putdiv"
>
<
/div>
"button" value=
"傳送get請求" onclick=
"getdata()"
>
"button" value=
"傳送put請求" onclick=
"putdata()"
>
springboot cors跨域處理
專案中遇到跨域問題你們怎麼處理的呢,這裡提供cors跨域作為參考 專案使用springboot,具體邏輯就不說了,很簡單,搜尋一下就懂了,這裡直接上 吧 package com.cui.boot.config import org.springframework.context.annotation...
js跨域 ajax跨域 跨域方式(前端)
跨域方式 cors 跨域資源共享 當使用xmlhttprequest傳送請求時,瀏覽器會自動加上乙個請求頭 origin,後端在接受到請求後確定響應後會在response headers中加入乙個屬性 access control allow origin,值就是發起請求的源位址 瀏覽器得到響應會進...
mysql跨庫分頁查詢 跨庫跨表分頁
前言 之前經常思考的乙個問題,資料庫分表後,分頁怎麼做才是最好的方案呢?今天就來整理一波.由來首先是由來,資料量增大,一張表資料太多的話,會使用分表.同理,乙個資料庫例項到達瓶頸,所以可能需要分庫 開始分表分庫都需要乙個依據.一般都安裝主鍵自增id來分割,很多時候分頁都是有時間排序的,這樣分割也能保...