日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue axios跨域 Request Method: OPTIONS问题

發布時間:2023/12/29 vue 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue axios跨域 Request Method: OPTIONS问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天做跨域登錄功能遇到這個問題(后端已做跨域處理):
當跨域請求為post時候,請求的method變為了options。
在這里插入圖片描述
其實跨域分為 簡單跨域請求和復雜跨域請求:
簡單跨域請求是不會發送options請求的
復雜跨域請求會發送一個預檢請求options
復雜跨域請求要滿足以下:
1、請求方法不是GET/HEAD/POST
2、POST請求的Content-Type并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain
3、請求設置了自定義的header字段

參考鏈接

axios默認設置的[‘Content-Type’]是application/json,會引發復雜跨域請求,就是所謂的method為options的現象,此階段為預請求 階段,此階段通過后才會發送正式的post請求。
其中引入qs模塊是為了解析瀏覽器把參數當作字符串請求數據,導致請求參數無法傳遞到后臺。
觀察瀏覽器network發現兩種方法最后的效果都是將Content-Type都變成了application/x-www-form-urlencoded
解決方法:

// request攔截器
service.interceptors.request.use(
config => {
------------解決方法--------------------------------------------------
config.headers[‘Content-Type’] = ‘application/x-www-form-urlencoded’
if (config.method === ‘post’) {
config.data = qs.stringify({
…config.data
})
}
--------------------------------------------------------------
if (store.getters.token) { // 設置全局參數uid,keyid
// config.headers[‘X-Token’] = getToken() // 讓每個請求攜帶自定義token 請根據實際情況自行修改

if (config.method === 'post') { // 2019/4/10 by zzqconst data = qs.parse(config.data)config.data = qs.stringify({keyid: 'keyid',uid: 'uid',...data})}if (config.method === 'get') { // 2019/4/10 by zzzqconfig.params = {...config.params,keyid: 'keyid',uid: 'uid'}} } return config

},
error => {
// Do something with request error
console.log(error) // for debug
Promise.reject(error)
}
)
————————————————
版權聲明:本文為CSDN博主「Homer_Simpson」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Homer_Simpson/article/details/89188068

總結

以上是生活随笔為你收集整理的vue axios跨域 Request Method: OPTIONS问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。