当前位置:   article > 正文

小程序怎么样发请求?_原生小程序怎么发送请求

原生小程序怎么发送请求
  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);
      }
    })
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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';
      }
    });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

如果不传递 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);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

 uni.$u.http.post('/user/login', {password: '123456'}, {配置对象} ).then(res => {}).catch(err => {}) 
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/677662
推荐阅读
相关标签
  

闽ICP备14008679号