vue 預檢 vue專案中的請求問題

2021-10-17 05:44:32 字數 847 閱讀 1159

axios post會傳送2次請求 , 第一次為options options不帶引數 第二次為自己設定的post請求 帶參

這段為引用

跨域資源共享標準新增了一組 http 首部字段,允許伺服器宣告哪些源站有許可權訪問哪些資源。另外,規範要求,對那些可能對伺服器資料產生***的 http 請求方法(特別是 get 以外的 http 請求,或者搭配某些 mime 型別的 post 請求),瀏覽器必須首先使用 options 方法發起乙個預檢請求(preflight request),從而獲知服務端是否允許該跨域請求。伺服器確認允許之後,才發起實際的 http 請求。在預檢請求的返回中,伺服器端也可以通知客戶端,是否需要攜帶身份憑證(包括 cookies 和 http 認證相關資料)。

也就是說,它會先使用options去測試,你這個介面是否能夠正常通訊,如果不能就不會傳送真正的請求過來,如果測試通訊正常,則開始正常請求。

關於這個問題,需要在後台進行設定,允許options請求,不然你的請求就會受到影響,後台並作出判斷,如果請求方式為options,告訴它可以通訊,其他直接什麼都不做。

以下是php做設定內容

header(「access-control-allow-origin:*」);

header(「access-control-allow-headers:content-type」);

header(「access-control-request-method:get,post」);

if(strtoupper($_server[『request_method』])== 『options』)else{

config.headers = {

'token': store.state.token,

vue專案中封裝axios請求

1.前言 之前是我負責這個專案的搭建,及打包上線,整個專案都是我乙個人來做,所以介面寫的遍地都是,造成了瀏覽起來很難受,不便於維護 所以就打算封裝一下axios 建立乙個apis 的js檔案來集中管理介面,走著!首先考慮的是通過promise來封裝axios,使 看起來更清晰明了 2.1 專案中引入...

vue 關掉vue專案中的ESlint

在新建專案的時候,還信心滿滿的要標準開發,於是開啟了eslint 檢測,後來才發現,想法的太天真,空格縮排不對都要報錯,而且我對錯誤是0容忍。並且一般都是用外掛程式對 進行格式化,但還是很多錯誤,實在不想一遍遍去排查,於是找了找資料,關掉專案中eslint 但是eslint也有可取之處。它可輔助規範...

vue專案中使用axios傳送請求

在src下新建乙個server的資料夾,資料夾中的檔案是server.js檔案 server.js檔案中寫 import from element ui let baseurl if process.env.node env development else else catch v from se...