redengineer / redmini

小红书小程序
17 stars 4 forks source link

发送post请求,报request fail: Cannot convert object to primitive value #1152

Open riyue opened 6 months ago

riyue commented 6 months ago

Issue类型

bug

问题模块

小程序Api

所属的服务商

某某公司

平台

IDE

小红书版本信息

7.88

基础库版本

v3.86.1

用户ID

发生问题的时间

2024-03-05 18:30:59 至 2024-03-05 18:30:59

问题描述

IDE 中 发送 post 请求参数如下:

data: "data_list=W3si%3D" dataType: "text" fail: e=>{n.status=0,null==i||i(e)} header: {Content-Type: 'text/plain'} method: "POST" responseType: "text" success: r=> {…} url: "http://sss.cc"

报 request fail: Cannot convert object to primitive value

期望结果

期望不报错,发送成功

重现步骤和复现问题的最小demo Github链接

用这些参数就会出现了 request({ data: "data_list=W3si%3D", dataType: "text", header: {Content-Type: 'text/plain'}, method: "POST", responseType: "text", url: "http://sss.cc" })

github-actions[bot] commented 6 months ago

您好开发者, 我们已收到你的问题, 已通知开发团队进行处理! 如您未阅读我们的开发文档,可先参阅开发文档 小红书问题处置流程 :sparkles: 感谢您的提问!:sparkles:

yuuk commented 5 months ago

在taro框架下,使用axios开发同遇到

Api.post('https://jsonplaceholder.typicode.com/posts/', {
    a: 1,
    b: 2,
 });

默认情况下,这么写会报该错 (真机正常)。

目前的解决办法是覆盖 axios 的 transformRequest, 不做任何中间转换。

const Api = axios.create({
    timeout: 1000 * 10, // 10秒
    headers: {
        'content-type': 'application/json',
    },
    transformRequest: [
        (data) => {
            return data;
        },
    ],
});