wx.request net::ERR_TOO_MANY_REDIRECTS

问题

使用微信小程序开发者工具开发小程序项目时,wx.request 返回总是报 net::ERR_TOO_MANY_REDIRECTS

wx.request发起一个get请求,一直重定向直到请求失败,怎么处理?

同样的请求,使用POST MAN 和 在 iOS ,前端我都试了试,其他端都有正常返回值,就微信小程序 wx.request 不能正常返回。

对比看了看POST MAN 和 微信小程序里的请求,发现是微信小程序里的请求头Cookies少了东西。我在 wx.request 的请求头里添加上对应的Cookie之后再请求,接口就可以了正常返回了。

解决

方法一:请求头里添加Cookies

在 request 的 header 里面添加设置 Cookie 值

wx.request({
    url: 'https://xxx.com/api?xxx',
    header: {
        "Cookie": "key1=value1; key2=value2"
    },
    method: 'GET',
    success:(res) => {
    	// Code...
    },
    fail(err) {
      console.log(err)
    }
})

这样做比较麻烦

方法二:使用weapp-cookie

weapp-cookie

wx.request 发起的请求,先是到微信服务器,然后从微信服务器再到我们自己的服务器,是这么个过程,并非直接到我们自己的服务。小程序原生的 request 网络请求接口并不支持 Cookie,但有时候我们现有的后端接口确于依赖 Cookie。

按照github上的指导导入了weapp-cookie这个包,并完成了构建

npm install weapp-cookie --save

# 将 npm 包复制到 vendor 文件夹,避免小程序可能不能找到文件(Tips:支持npm包的开发环境无需此步)
cp -rf ./node_modules/ ./vendor/

在这里插入图片描述
我不明白为什么要把 node_modules 里的文件拷贝到 vendor 文件夹里去,“避免小程序可能不能找到文件”,我不能明白为什么会找不到,放 vendor 就能找到?

然后将 weapp-cookie 引入到项目

import './vendor/weapp-cookie/dist/weapp-cookie'

在App.js 中引入,报错:

app.js错误:
 Error: module 'vendor/weapp-cookie/dist/weapp-cookie.js' is not defined, require args is './vendor/weapp-cookie/dist/weapp-cookie'

找不到 weapp-cookie.js 这个文件

后来将引入的方法改为如下方式就可以了:

import cookies from "weapp-cookie"

同时设置一次Cookies,其他请求里面就不用每个都添加了

import cookies from "weapp-cookie"
cookies.set('xxx', "xxx", { domain: 'xx.xx.com' })

App({
  onLaunch() {
  
  },
  globalData: {
    userInfo: null
  }
})

当然封装一个请求,从统一的入口处添加一次也行。

这样设置将 cookie 写死了,如果有改变的话就玩完。一般的我们登录之后让后台将需要添加的 cookie 从 res 里返回,我们设置一次。但是我不清楚为什么我们的后台连登录接口都需要有 cookie ,否则就请求不通。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
wx.request:fail -101:net::err_connection_reset是微信开发者工具中的一个错误代码,表示请求失败,错误原因是网络连接被重置。这种错误常见于网络不稳定,或者服务器端出现问题等情况。 造成该错误的原因有可能是网络连接不稳定,可能是由于用户的网络环境不好、网络延迟或网络中断等。这时候可以尝试重新连接网络、刷新页面或等待网络恢复稳定后再尝试请求。 另外,该错误也有可能是服务器端的问题,可能是服务器出现了故障或维护等情况。这种情况下,我们不能做太多的操作,只能等待服务器恢复正常。 解决这个问题的方法主要是通过确保网络连接的稳定性来避免这个错误的发生。可以尝试以下方法来解决这个问题: 1. 检查网络连接:确保手机或电脑处于良好的网络环境下,可以尝试连接其他网站或使用其他应用程序来测试网络连接情况。 2. 重启设备:有时候设备可能出现一些临时问题,可以尝试重新启动设备来恢复网络连接。 3. 更新微信开发者工具和微信小程序:确保使用的微信开发者工具是最新版本,并且微信小程序也是最新版,这有助于修复一些已知的问题和错误。 4. 检查服务器状态:如果确认网络连接没有问题,可以通过查询服务器状态或联系服务器管理员来了解服务器是否正常运行。 总之,wx.request:fail -101:net::err_connection_reset是微信开发者工具中的网络连接错误代码,可能是由于网络连接不稳定或服务器端出现问题引起的。通过确保网络连接稳定以及更新工具和应用程序的版本,可以尽量避免这个错误的发生。如果问题仍然存在,可以联系微信客服或服务器管理员寻求帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Morris_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值