uni-app uni.request POST请求被改成接口报错不支持‘ST’
uni-app uni.request POST请求被改成接口报错不支持‘ST’
示例代码:
requestDeleteItem(id).then(() => {
requestPostList(data);
});
操作步骤:
- 删除列表(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’方法导致的。以下是可能的原因和解决方案:
- 检查请求方法大小写: 确保在uni.request中明确指定method为’POST’(大写),而不是’post’或其它形式:
uni.request({
url: 'your_api_url',
method: 'POST', // 必须大写
data: {...}
})
- 检查请求头: 某些服务器对Content-Type有严格要求,建议添加:
header: {
'Content-Type': 'application/json'
}
- 检查请求顺序问题: 在连续请求时,确保前一个请求完成后再发起下一个请求。建议使用async/await:
async function handleDelete() {
await requestDeleteItem(id);
await requestPostList(data);
}
-
检查uni-app版本: 升级到最新版uni-app,已知某些旧版本存在类似问题。
-
检查跨域问题: 如果是跨域请求,确保服务器正确配置了CORS。
-
检查网络拦截: 某些网络环境或代理可能会修改请求方法,尝试更换网络环境测试。
-
使用try-catch捕获错误:
try {
await requestDeleteItem(id);
await requestPostList(data);
} catch (e) {
console.error('请求出错:', e);
}