uni-app运行到微信小程序发起请求失败

uni-app运行到微信小程序发起请求异常

  1)本地开发,uni-app运行到微信小程序如果出现请求发不出,先到右上角详情,找到本地设置,勾选不校验合法域名。如果还发现请求发不出来,看第二步。

在这里插入图片描述
  2)先看下本地uni-app请求代码:

<template>
	<view>
		<button type="primary" size="mini" @click="clickButton">get请求</button>
		<view>
			{{text}}
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				text: ''
			}
		},
		methods: {
			clickButton() {
				uni.request({
					url: '/api/books',
					method:'GET',
					success: (res) => {
								console.log(res.data);
								this.text = 'request success';
						}
				})
			}
		}
	}
</script>

<style>

</style>


  3)微信小程序request方法不需要考虑跨域访问问题,因为微信小程序的做法是由他们的后台取访问我们的后台,所以实际的“跨域问题”已经在我们的小程序与微信后台交流的时候解决了。而上面的代码是为了解决H5端跨域的问题采用的请求方式,不是一个完整的请求(没有http协议主机端口,走了代理),导致请求发不出去。

  4)解决方案:借助api的条件编译 #ifdef 微信小程序需要完整的接口地址

<template>
	<view>
		<button type="primary" size="mini" @click="clickButton">get请求</button>
		<view>
			{{text}}
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				text: ''
			}
		},
		methods: {
			clickButton() {
				// #ifdef H5
				uni.request({
					url: '/api/books',
					method:'GET',
					success: (res) => {
								console.log(res.data);
								this.text = 'request success';
						}
				})
				// #endif
				
			  // #ifdef MP-WEIXIN
				uni.request({
					url: 'http://localhost:3000/books',
					method:'GET',
					success: (res) => {
								console.log(res.data);
								this.text = 'request success';
						}
				})
				// #endif
			}
		}
	}
</script>

<style>

</style>

  效果如下:
在这里插入图片描述

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值