电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

解決vue axios跨域 Request Method: OPTIONS問題(預檢請求)

瀏覽:143日期:2022-12-06 14:49:05

我們在vue開發中用axios進行跨域請求時有時會遇到,同一個接口請求了兩次,并且第一次都是options請求,然后才是post/get請求

如下圖

解決vue axios跨域 Request Method: OPTIONS問題(預檢請求)

options請求

解決vue axios跨域 Request Method: OPTIONS問題(預檢請求)

get請求

為什么會出現這種原因呢?

這是因為CORS跨域分為 簡單跨域請求和復雜跨域請求;

簡單跨域不會發送options請求,復雜跨域會發送一個預檢請求options。

1.簡單跨域滿足的條件

1.請求方式是以下三種之一:

HEAD

GET

POST

2.HTTP的頭信息不超出以下幾種字段

Accept

Accept-Language

Content-Language

Last-Event-ID

Content-Type

但是Content-Type的值,只限于三個值:

application/x-www-form-urlencoded、multipart/form-data、text/plain

2.復雜跨域滿足的條件

1.請求方法不是GET/HEAD/POST

2. post請求的Content-Type并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain

3.請求設置了自定義的header字段

在header中自定義了字段就會觸發options預檢請求

// 請求攔截器service.interceptors.request.use( config => { if (store.getters.token) { config.headers[’Content-MD5’] = ’MD5’ config.headers[’authToken’] = getToken() config.headers[’accessTokenRetireTime’] = getTokenTime() } return config }, error => { console.log(error) // for debug return Promise.reject(error) })

3.解決方案

1.可以通過跟后端協調,將所有options放行,此時便能通過post/get請求訪問到數據。

2.引入qs模塊處理數據

qs.parse()將URL解析成對象的形式

qs.stringify()將對象 序列化成URL的形式,以&進行拼接

1.安裝qs

npm install qs

2.在main.js引入qs

import qs from ’qs’;

Vue.prototype.$qs = qs;

3.vue實例組件里都可以直接用this.$qs.stringify(要處理的數據),進行數據轉換

個人傾向第一種方法,如果用第二種方法對前后端來說比較繁瑣。

補充知識:vue當中axios調取后臺數據 以及設置自定義請求頭

從vue2.0開始vue-resource就不再維護了,尤大大開始推薦使用 axios。 具體詳細教程可在官網查閱,這篇文章主要說明一些簡單的問題。

第一步:安裝axios

$ npm install axios

第二步:在 main.js中引入axios

解決vue axios跨域 Request Method: OPTIONS問題(預檢請求)

第三步:設置我們自定義的 頭請求;

header也可以在我們具體的請求中添加 header參數,我們這里是在main.js中添加公眾的。

axios.defaults.timeout = 5000;

//請求超時的時間設定

axios.defaults.headers.post[’Content-Type’] = ’application/json’;

//axios默認的請求方式,可以自己設置

axios.defaults.baseURL = ’http://localhost:8008’;

//axios默認的請求地址,開發時可以實際的接口地址來設置該值,去請求別人的接口(前提是后臺已經幫你解決了接口的跨域問題,如果沒有,請看下文,我們自己可以解決開發跨域的問題)

axios.defaults.headers.common['token'] = 'aaaaaaaaaaa';

這塊token呢是因為當初調試接口的時候 有些接口必須登錄才可以調用,而我們的登陸注冊并未寫好,因此 后臺給了一個故固定的token,然后寫在了頭里面。

以上這篇解決vue axios跨域 Request Method: OPTIONS問題(預檢請求)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: IOS
相關文章:
主站蜘蛛池模板: 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 陕西鹏展科技有限公司| 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 鑫达滑石-辽宁鑫达滑石集团 | 无线联网门锁|校园联网门锁|学校智能门锁|公租房智能门锁|保障房管理系统-KEENZY中科易安 | 一航网络-软件测评官网| 无机纤维喷涂棉-喷涂棉施工工程-山东华泉建筑工程有限公司▲ | 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 广州昊至泉水上乐园设备有限公司| 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 上海宿田自动化设备有限公司-双面/平面/单面贴标机 | 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 济南宣传册设计-画册设计_济南莫都品牌设计公司 | 手术室净化厂家_成都实验室装修公司_无尘车间施工单位_洁净室工程建设团队-四川华锐16年行业经验 | 大行程影像测量仪-探针型影像测量仪-增强型影像测量仪|首丰百科 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 西门子代理商_西门子变频器总代理-翰粤百科 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 电销卡_稳定企业大语音卡-归属地可选-世纪通信 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 济南办公室装修-厂房装修-商铺装修-工装公司-山东鲁工装饰设计 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 常州翔天实验仪器厂-恒温振荡器-台式恒温振荡器-微量血液离心机 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 电机保护器-电动机综合保护器-浙江开民 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | Maneurop/美优乐压缩机,活塞压缩机,型号规格,技术参数,尺寸图片,价格经销商 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 |