前言: 本地開發起的服務器,通過修改hosts文件設置域名映射到本地,接口在測試環境
1. 服務器端設置cors, 配置access-control-allow-origin 頭部
使用螞蟻金服的upload組件時發現錯誤,network中可以看到有一個options請求,而本人實際上並沒有使用options的習慣
查看antdesign文檔上的upload, 發現發出了兩次請求,第一個是options,第二個才是上傳的post請求
查看相關文檔發現, options請求是瀏覽器行為,
使用cors解決跨域時,如果是非標准cors, 比如使用 DELETE , PUT 等方法, 設置非常規的請求頭部(比如使用jwp, 在header中傳遞token進行身份驗證),上傳文件等, 瀏覽器會先發出一次options請求,該請求不會帶任何參數(包括設置的頭部,cookie等), 等待服務器端返回200, 才會發出正常的請求
遺留問題:
1. 如果設置頭部, 應該每次請求都會先發出options請求, 然而有些接口卻沒有發出
2. 有些get請求,在瀏覽器network中看是options, 而實際上服務器接收的get, 能正常操作
參考: https://my.oschina.net/tridays/blog/758994
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS