微信小程序post提交

微信小程序post提交和get的提交有所不同,需要注意的几点。

1. 'Content-Type': 'application/json'用在get请求中没问题.

POST请求就不好使了.需要改成: "Content-Type": "application/x-www-form-urlencoded"

2016.11.10更新:有同学在将content-type 修改为小写后,post请求成功.

2. 加上method: "POST"

这是get提交

 wx.request({
      url: url, //仅为示例,并非真实的接口地址
      data: {
       classid:classid
      },
      header: {
        'content-type': 'application/json' // 默认值
      },
      success:(res)=> {
       console.log(res.data);
      //  that.setData({teachers:res.data});  要有function
       this.setData({ teachers: res.data });
      }
    })

这是post提交

wx.request({
      url: 'https://www.xxx.top/pj/index.php/student/api/pj', //仅为示例,并非真实的接口地址
      method: 'POST',
      data: {
        pjid: this.data.pj.pjid,
        testpaperid: this.data.pj.testpaperid,
        answer: JSON.stringify(this.data.answer),
        student: JSON.stringify(this.data.mess),
        score: _score

      },
      header: {
        'content-type': 'application/x-www-form-urlencoded' // 默认值
      },
      success: (res)=> {
        console.log(res.data);
       
       
      
      }
    })

需要注意的是 JSON.stringify(this.data.answer)  这是转换成json字符串,  因为data是一个json。


### 微信小程序 POST 请求返回 400 错误解决方案 HTTP 400 Bad Request 表示客户端发送的请求有语法错误,无法被服务器解析。对于微信小程序中的 POST 请求来说,通常是因为未正确设置请求头或数据格式不匹配所引起[^1]。 #### 设置正确的请求头 为了使服务器能够正确处理来自微信小程序的数据,在发起 POST 请求时应确保设置了适当的内容类型(Content-Type),例如 `application/json` 或者 `application/x-www-form-urlencoded`: ```javascript wx.request({ url: 'https://example.com/api', method: 'POST', header: { 'content-type': 'application/json' // 或者使用 'application/x-www-form-urlencoded' }, data: JSON.stringify({ key: value }), // 如果 content-type 是 application/json,则需序列化对象为字符串 success (res) { console.log(res.data); } }) ``` #### 数据验证与清理 在提交之前对要发送给服务器的数据进行必要的校验和清理工作也很重要。这有助于防止因非法字符或其他不符合预期的情况而导致的服务端拒绝接收请求。 #### 处理登录态失效情况下的 token 刷新逻辑 考虑到可能存在由于 token 过期等原因造成的认证失败问题,可以在每次 API 调用前先尝试获取最新的访问令牌。如果遇到身份验证相关的问题(如过期),则重新执行一次完整的授权流程来更新凭证后再重试原始操作[^3]。 通过以上措施可以有效减少甚至避免 HTTP 400 类型的响应发生率,提高应用稳定性并改善用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值