收藏
回答

post请求报403

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.request 工具 5.1 2.6.5

请求后台数据的时候get请求没有问题,put和post请求报错403 ,提示“Invalid CORS request”,我用postman测试都是可以的,不知道是怎么回事


下面是postman

这里是我封装的http请求工具类

function promiseHttp(url, type, data) {
 
    return new Promise(function(resolve, reject) {
      wx.request({
        url: url,
        method: type,
        data: data,
        success: function(res) {
          console.log('请求成功', res)
          resolve(res)
        },
        fail: function(res) {
          console.log('请求失败', res)
          reject(res)
        },
        complete: function() {
          wx.hideLoading()
        }
      })
    })
  }

下面是请求代码

HttpUtil.promiseHttp(url, "POST", petdata)
      .then(function (res) {
        console.log("返回的数据为:", res.data)
        if (res.statusCode == 200) {
          that.setData({
            animalId: res.data.animalId,
            pet:res.data
          })
        }
      })

网上看了下说是因为小程序 content-type 默认是小写,改成Content-Type 就可以了,但是我改了也没起作用,请问该如何解决,不想直接写ip加端口号

最后一次编辑于  07-17  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 明军
    明军
    07-17

    这两天也遇到了类似问题,模拟器就会出现,但是真机不会,不知道我为什么。主要表现在POST请求模拟器遇到类似问题

    07-17
    赞同
    回复 4
    • GhostPogba
      GhostPogba
      07-17
      对呀,真是有点坑,我们还没弄域名,只有写ip调到了
      07-17
      回复
    • 明军
      明军
      07-17

      是很奇怪,但是我们两套环境,在测试环境,就没问题,生产环境就有问题post请求没有403,我们就怀疑服务器配置和代码配置跨域问题。但是生产环境post真机没问题,模拟器有问题。很鬼

      07-17
      回复
    • 27
      27
      08-20

      由于服务端加了这段代码,所以同样遇到了这个问题。

      //生产环境
      if (ProfileEnum.isProd(springProfilesActive)) {
        corsConfiguration.addAllowedOrigin("https://xxx.com");
        corsConfiguration.addAllowedOrigin("https://yyy.com");
        corsConfiguration.addAllowedOrigin("https://zzz.com");
      }


      奇怪就在于,真机没问题,开发者工具报 403,

      08-20
      回复
    • 27
      27
      08-20

      postman 也正常

      08-20
      回复
  • Konuny
    Konuny
    08-21

    这个问题解决了吗 我的是模拟器没问题 但是真机调试403


    08-21
    赞同
    回复