当 Postman 接受时,Fetch 返回一个内部服务器错误

在 Postman 中,我成功调用了对 API 的请求。


当我fetch()在 ReactJS 中尝试使用它时,它会返回一个Internal Server Error (500)


我的 Fetch 看起来像:


const FetchData = async (url , request) => {

    return await fetch(url, request)

    .then(async function(res) {

        if (res.ok)

            console.log("OK: " + await res.json())

        else

            console.log("NOT OK: " + await res.text())

    });

}

要求:


{

  method: "POST",

  headers: {

    'Content-Type': 'application/json',

    'Accept': 'application/json'

  },

  body: {

    ...

  }

}

邮递员>身体:


{

    "value": {

        "RequestType":1,

        "Dependencies":[],

        "Priority":1,

        "RequestLocation":"some string",

        "RequestJSON": "some string",

        "NoCache":true,

        "PostNow":true,

        "Authentication": {

            "Email":"string",

            "Device": {

                "Name":"string",

                "UniqueDeviceId":"string",

                "AppVersion":"string",

                "AppType":int,

                "Devicestatus":int

            }

        }

    }

}

我 100% 确定两个身体彼此相等。


我无法找出问题所在。你们看到了吗?


慕斯王
浏览 397回答 1
1回答

慕标5832272

fetch将按body原样发送,在您的情况下,您发送的是 JS 对象,而不是 JSON 数据,即body: { ... }如果服务器需要 JSON 数据,那么您需要将对象转换为 JSON 字符串,即body: JSON.stringify({ ... })PS 值得注意的是,这可能突出了您的服务器端缺乏对无效请求的验证,您可能想要解决这个问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript