【问题标题】:Not getting any response using fetch()使用 fetch() 没有得到任何响应
【发布时间】:2023-01-19 03:17:29
【问题描述】:

我正在尝试使用 JS fetch API 发送一个 http POST 请求,但我没有收到任何响应,尽管请求通过服务器并且数据按预期发布。

这是我在前端使用的代码:

fetch('http://127.0.0.1:8000/users/add', {
    method: 'POST',
    mode: 'no-cors',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        "id": "johndoe1234",
        "name": "John Doe",
        "card": "bhgst-xxxx",
        "permissions": 1
    })
}).then(resp => console.log(resp))

我收到的错误如下: devtools screenshot

使用 Postman(以及使用 Python requests)效果很好。这是预期的响应(我使用 Postman 得到了相同的响应)。

{
    "card": "bhgst-xxxx",
    "id": "johndoe1235",
    "name": "John Doe",
    "permissions": 1
}

【问题讨论】:

  • type: 'opaque' - 浏览器控制台是否告诉您任何 CORS 问题?
  • 如果没有 mode: no-cors,它确实会告诉我 CORS 问题。但是在服务器中,响应标头设置为Access-Control-Allow-Origin: *

标签: javascript fetch-api


【解决方案1】:

您需要使用 .json() 将正文解析为 JSON。

fetch(...).then(res => res.json()).then(console.log);

【讨论】:

    猜你喜欢
    • 2016-12-14
    • 1970-01-01
    • 2018-06-18
    • 2021-11-02
    • 2020-07-12
    • 1970-01-01
    • 2012-11-21
    • 2014-01-30
    • 2019-09-02
    相关资源
    最近更新 更多