怎么在uniapp中利用H5實現https跨域請求?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
跨域是瀏覽器的專用概念,指js代碼訪問自己來源站點之外的站點。比如A站點網頁中的js代碼,請求了B站點的數據,就是跨域。
A和B要想被認為是同域,則必須有相同的協議(比如http和https就不行)、相同域名、和相同端口號(port)。
如果你是做App、小程序等非H5平臺,是不涉及跨域問題的。
由于uni-app是標準的前后端分離模式,開發h6應用時如果前端代碼和后端接口沒有部署在同域服務器,就會被瀏覽器報跨域。
本文主要介紹uniapp H5開發中,本地調試https的接口實現跨域請求
"h6" : {
"title" : "",
"domain" : "",
"router" : {
"mode" : "hash",
"base" : "/h6/"
},
"devServer" : {
// "https" : true,
"proxy":{
"/api": {
"target":"https://域名/api",
"changeOrigin": true,//是否跨域
"secure": true,// 設置支持https協議的代理
"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: '網絡異常',
icon:'none'
});
}
})
如此這般,跨域功成。
有小伙伴問uniapp客戶端對接第三方,uniapp這邊我用的是https,但是第三方用的http,請問這種該如何去解決跨域問題呢?
// 思路和vue是一樣的
1、安裝vue jsonp
npm i -S vue-jsonp
// 引入vue-jsonp 解決服務跨域請求問題
2、在main.js中導入vue-jsonp
import {VueJsonp} from 'vue-jsonp'
Vue.use(VueJsonp);看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。