微信小程序开发之网络数据请求

文章目录

一、限制

二、配置服务器合法域名​​​​​​​

三、发起请求​​​​​​​

四、 跳过requst合法域名校验

 五、关于跨域和Ajax的说明


一、限制

出于安全性考虑,小程序官方对数据接口的请求做出了如下两点限制:

  • 只能请求HTTPS类型的接口
  • 必须先将接口的域名添加到信任列表中


二、配置服务器合法域名

配置步骤:

  1. 登录微信小程序管理后台 链接
  2. 点击开发
  3. 开发管理
  4. 开发设置
  5. 服务器域名
  6. 点击右上角修改requst合法域名

 

 注意事项:

  1. 域名只支持https协议
  2. 域名不能使用IP地址或者localhost
  3. 域名必须经过ICP备案(后端了解)
  4. 服务器域名一个月内最多可申请5次修改(官网信息有误,社区工作人员已经做出解释)

 


三、发起请求

(1)GET请求

//发起GET请求
getInfo(){
  wx.request({
    url: 'https://XXX',//所要请求的接口地址
    method:'GET',//请求的方式
    data:{
      name:'XX',
      age:20
    },
    //请求成功的回调函数
    success:(res)=>{
      console.log(res)//打印服务器返回的对象
    },
    //请求失败的回调函数
    fail:(res)=>{
      console.log('请求数据失败!')
    },
    //无论请求成功与否都会执行的函数
    complete:(res)=>{
      console.log('已经发送网络数据请求!')
    }
  })

},

(2)POST请求

//发起POST请求
getInfo(){
  wx.request({
    url: 'https://XXX',//所要请求的接口地址
    method:'POST',//请求的方式
   data:JSON.stringify({
       "sbr": "gy",
        "fcqk": "2"    
     }),
     header:{'content-type': 'application/json'},
    //请求成功的回调函数
    success:(res)=>{
      console.log(res)//打印服务器返回的对象
    },
    //请求失败的回调函数
    fail:(res)=>{
      console.log('请求数据失败!')
    },
    //无论请求成功与否都会执行的函数
    complete:(res)=>{
      console.log('已经发送网络数据请求!')
    }
  })

},

注意:POST请求头header一定要和请求体data相一致,否则将拿不到后端的接口数据

反面案例icon-default.png?t=N0U7https://blog.csdn.net/qq_52487066/article/details/128859748?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128859748%22%2C%22source%22%3A%22qq_52487066%22%7D参考文章icon-default.png?t=N0U7https://www.cnblogs.com/justyoutiao/p/11385964.html

(3)二者区别

如果你要提交一篇文章,肯定只能用post,因为数据量太大,get请求类似浏览器url请求,你把一篇文章放到url里面肯定请求不过去,如果你只是个简单的传id或者比较少的参数可以用get,还有就是有密码输入建议用post,post请求参数不会以明文显示在url上。

一句话:GET请求可以把参数包含在URL中,但POST请求需要通过request body来传递参数。

参考文章:GET与POST二者的通俗化解释 


四、 跳过requst合法域名校验

如果在开发中,后端程序员仅仅提供了http协议的接口,暂时没有提供https协议的接口,此时为了不耽误项目开发进度,可以现在微信开发者工具的项目详情里面的本地设置,将【不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书】勾选上,以此来暂时跳过合法域名的检测机制(这一操作仅限在开发与调试阶段使用!)

 


 五、关于跨域和Ajax的说明

(1)跨域问题只存在于基于浏览器的Web开发中。由于小程序的宿主环境是微信客户端,所以小程序中是不存在跨域问题的。

(2)Ajax技术的核心是依赖于浏览器中的XML HttpRequst这个对象,由于小程序的宿主环境是客户端,所以小程序中没有“ 发起Ajax请求”的说法,而是称为“ 发起网络数据请求

END.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾老师不懂代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值