小程序怎么样发请求?

  1. 我之前在开发原生小程序的时候,使用的是官方的wx.request方式发的请求,是原始的回调函数的写法,没有promise写法。
  2. 再就是小程序和浏览器发请求的一些区别
  • 2.1 小程序没有跨域的说法,能访问什么域名都是在后台配置的,只有浏览器有跨域的说法.
  • 2.2 小程序也不能使用axios,axios只能在浏览器和nodejs里面使用,依赖于原生的XMLHttpRequest方法,小程序没有
  1. 我之前给公司开发的小程序使用的是uni-app框架,他就是一套代码,可以多个平台使用,比如打包为百度小程序,钉钉小程序,头条小程序等等。 这个框架是使用的vue语法开发的项目,有vue2和vue3的写法它对于请求进行了promise的封装,但是vue2和3也有细微区别,vue3 是正常的.then .catch。vue2返回信是一个数组,一个错误对象,一个成功的返回值 [err.res]
  2. 开发uni-app小程序的时候,采用了uview-ui框架,这个框架里面提供了很多工具方法,均持载在$u对象下其中关于请求的提供了一个更完整的请求promise封装,使用方法就是uni.$u.http.get/post ()可以和axios一样,设置基地址,设置请求、响应拦截器

1.原生小程序写法https://developers.weixin.gg.com/miniprogram/dev/api/network/request/wx.request.html

 wx.request({
      url: 'http://ajax-api.itheima.net/api/province',
      data: {
        x: '',
        y: ''
      },
      header: {
        'content-type': 'application/json'
      },
      success (res) {
        // 请求成功以后的回调函数,会执行到这里来
        console.log(res.data)
      },
      fail(err) {
        // 请求失败以后的回调函数,会执行到这里来
        console.log(err);
      }
    })

2.uni-app发请求的方式
https://uniapp.dcloud.net.cn/api/#promise-封装

  uni.request({
      url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
      data: {
          text: 'uni.request'
      },
      header: {
          'custom-header': 'hello' //自定义请求头信息
      },
      success: (res) => {
          console.log(res.data);
          this.text = 'request success';
      }
    });

如果不传递 success fail complete 参数中的一个,就会自动返回分装后的promise对象

这个是vue2的写法,promise封装的不够彻底, vue3的彻底一些

async function request() {
	var [err, res] = await uni.request({
        url: "https://www.example.com/request",
      });
    console.log(res.data);
}

3.uview-ui框架提供的 工具函数方法
https://www.uviewui.com/js/http.html
基本用法注意:post和get方法的第三个参数才为配置项

 uni.$u.http.post('/user/login', {password: '123456'}, {配置对象} ).then(res => {}).catch(err => {}) 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值