栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

uniapp H5 https跨域请求实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

uniapp H5 https跨域请求实现

什么是跨域

跨域是浏览器的专用概念,指js代码访问自己来源站点之外的站点。比如A站点网页中的js代码,请求了B站点的数据,就是跨域。
A和B要想被认为是同域,则必须有相同的协议(比如http和https就不行)、相同域名、和相同端口号(port)。

如果你是做App、小程序等非H5平台,是不涉及跨域问题的。

由于uni-app是标准的前后端分离模式,开发h5应用时如果前端代码和后端接口没有部署在同域服务器,就会被浏览器报跨域。

本文主要介绍uniapp H5开发中,本地调试https的接口实现跨域请求

源码视图
"h5" : {
    "title" : "",
    "domain" : "",
    "router" : {
      "mode" : "hash",
      "base" : "/h5/"
    },
    "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);

到此这篇关于uniapp H5 https跨域请求实现的文章就介绍到这了,更多相关uniapp H5 https跨域内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/129467.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号