什么是跨域
跨域是瀏覽器的專用概念,指js代碼訪問自己來源站點之外的站點。愛掏網(wǎng) - it200.com比如A站點網(wǎng)頁中的js代碼,請求了B站點的數(shù)據(jù),就是跨域。愛掏網(wǎng) - it200.com
A和B要想被認(rèn)為是同域,則必須有相同的協(xié)議(比如http和https就不行)、相同域名、和相同端口號(port)。愛掏網(wǎng) - it200.com
如果你是做App、小程序等非H5平臺,是不涉及跨域問題的。愛掏網(wǎng) - it200.com
由于uni-app是標(biāo)準(zhǔn)的前后端分離模式,開發(fā)h5應(yīng)用時如果前端代碼和后端接口沒有部署在同域服務(wù)器,就會被瀏覽器報跨域。愛掏網(wǎng) - it200.com
本文主要介紹uniapp H5開發(fā)中,本地調(diào)試https的接口實現(xiàn)跨域請求
源碼視圖
"h5" : { "title" : "", "domain" : "", "router" : { "mode" : "hash", "base" : "/h5/" }, "devServer" : { // "https" : true, "proxy":{ "/api": { "target":"https://域名/api", "changeOrigin": true,//是否跨域 "secure": true,// 設(shè)置支持https協(xié)議的代理 "pathRewrite":{"^/api":""} } } } }
接口請求
uni.request({ // url: ApiUrl + opt.url, url: '/api' + opt.url, data: data, method: opt.method, header: opt.header, dataType: 'json', success: function (res) { if(res.data.code=='401'){ uni.showToast({ title: res.data.msg, icon: 'none' }); uni.navigateTo({ url: '/pages/me/login' }); } else { opt.success(res); } }, fail: function (res) { uni.hideLoading(); // opt.fail(res); uni.showToast({ title: '網(wǎng)絡(luò)異常', icon:'none' }); } })
如此這般,跨域功成。愛掏網(wǎng) - it200.com
問題引申
有小伙伴問uniapp客戶端對接第三方,uniapp這邊我用的是https,但是第三方用的http,請問這種該如何去解決跨域問題呢?
// 思路和vue是一樣的 1、安裝vue jsonp npm i -S vue-jsonp // 引入vue-jsonp 解決服務(wù)跨域請求問題 2、在main.js中導(dǎo)入vue-jsonp import {VueJsonp} from 'vue-jsonp' Vue.use(VueJsonp);
到此這篇關(guān)于uniapp H5 https跨域請求實現(xiàn)的文章就介紹到這了,更多相關(guān)uniapp H5 https跨域內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。