uni-app uni.request POST请求被改成接口报错不支持‘ST’

uni-app uni.request POST请求被改成接口报错不支持‘ST’

示例代码:

requestDeleteItem(id).then(() => {  
   requestPostList(data);  
});

操作步骤:

  1. 删除列表(delete请求)中某条数据后刷新列表(post请求),此时获取列表的post接口报错 msg: “Request method ‘ST’ not supported” (用fetch或者axios是可以成功的)
    • 只刷新列表时接口是post请求成功

预期结果:

  • 删除列表中某条数据后刷新列表post请求成功

实际结果:

  • 删除列表中某条数据后刷新列表post请求失败

bug描述:

  • post接口报错 msg: “Request method ‘ST’ not supported”。
    • 用fetch或者axios是可以成功的

| 信息类别     | 信息内容        |
|--------------|-----------------|
| 产品分类     | uniapp/App      |
| PC开发环境   | Mac             |
| 手机系统     | iOS             |
| 手机机型     | iphone13        |
| 页面类型     | vue             |
| vue版本      | vue2            |
| 打包方式     | 离线            |
| 项目创建方式 | CLI             |
| CLI版本号    | 5.0.0           |

更多关于uni-app uni.request POST请求被改成接口报错不支持‘ST’的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app uni.request POST请求被改成接口报错不支持‘ST’的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个错误通常是由于uni.request的POST请求被错误地转换成了’ST’方法导致的。以下是可能的原因和解决方案:

  1. 检查请求方法大小写: 确保在uni.request中明确指定method为’POST’(大写),而不是’post’或其它形式:
uni.request({
  url: 'your_api_url',
  method: 'POST', // 必须大写
  data: {...}
})
  1. 检查请求头: 某些服务器对Content-Type有严格要求,建议添加:
header: {
  'Content-Type': 'application/json'
}
  1. 检查请求顺序问题: 在连续请求时,确保前一个请求完成后再发起下一个请求。建议使用async/await:
async function handleDelete() {
  await requestDeleteItem(id);
  await requestPostList(data);
}
  1. 检查uni-app版本: 升级到最新版uni-app,已知某些旧版本存在类似问题。

  2. 检查跨域问题: 如果是跨域请求,确保服务器正确配置了CORS。

  3. 检查网络拦截: 某些网络环境或代理可能会修改请求方法,尝试更换网络环境测试。

  4. 使用try-catch捕获错误

try {
  await requestDeleteItem(id);
  await requestPostList(data);
} catch (e) {
  console.error('请求出错:', e);
}
回到顶部