http cors簡單請求和非簡單請求

2021-10-24 23:01:17 字數 1042 閱讀 6653

在開發中,我們會發現出現了乙個options請求的錯誤,如果第一次看到的小夥伴就會很疑惑了,http請求方式什麼時候出現了options,這是因為cors請求的簡單請求和非簡單請求的原因。

簡單請求:同時滿足兩大條件

請求方式:get、post、head(注:什麼是head請求?head請求和get本質是一樣的,但是head請求不含資料,只有http頭部資訊)

非簡單請求

請求方式:put、delete

自定義頭部字段

傳送json格式資料

正式通訊之前,瀏覽器會先傳送option請求,進行預檢,這一次的請求稱為「預檢請求」,

如果請求失敗,我們就會看到options請求的錯誤資訊

當伺服器成功響應預檢請求後,才會傳送真正的請求,並且攜帶真實資料

出現這個問題,前端一般不同做什麼處理。

服務端處理

1.服務端的"option-預檢"裡邊一定要包含允許客戶端使用非簡單方式請求資料的響應頭

預檢」請求時,允許請求方式則需伺服器設定響應頭:access-control-request-method

預檢」請求時,允許請求頭則需伺服器設定響應頭:access-control-request-headers

預檢」快取時間,伺服器設定響應頭:access-control-max-age

如果出現跨域的問題,服務端需要設定同意任意跨源請求:

access-control-allow-origin: *

檢查origin、access-control-request-method和access-control-request-headers欄位以後,確認允許跨源請求

服務端同意預檢請求,客戶端會傳送真正的請求;

服務端不同意預檢請求,因此觸發乙個錯誤,返回到客戶端

非簡單請求會使伺服器比簡單請求的多一倍的壓力,所以也才需要進行設定來允許以非簡單請求的方式請求

OPTIONS請求 簡單請求與 非簡單請求

當瀏覽器發出了乙個跨域的xhr的時候,瀏覽器會自動在請求頭加上一些引數,對於簡單請求和非簡單請求是不一樣的,先看一下簡單請求的定義 1 請求方法是以下三種方法之一 2 http的頭資訊不超出以下幾種字段 的時候是簡單請求。對於簡單請求,瀏覽器直接在請求頭上加乙個origin欄位,說明本次請求來自哪個...

HttpClient簡單請求和session的保持

httpclient是乙個客戶端的http通訊實現庫,目標是傳送和接受http請求。httpclient維護cookies,session的保持在客戶端就是cookie的體現。httpclinet的session的保持有兩種方式,一種是將httpclient例項儲存於web應用的session中,再...

CORS跨域簡單請求與非簡單請求

sr post get head nsr put delete sr one step 瀏覽器直接發出cors請求,並在頭部攜帶乙個origin欄位,伺服器根據這個值決定是否同意請求 origin 說明請求來自哪個源,包括協議 網域名稱 埠 host api.eurus.com nsr one st...