POST请求使用fetch()返回204 No Content

Jac*_*ett 3 javascript post node.js fetch-api

我正在向node.js服务器发出POST请求,但我无法让它工作.这是我的要求:

const headers = {
  'Accept': 'application/json',
  'Content-Type': 'application/json',
  'Authorization': 'this-can-be-anything',
};

export const postVote = (id, vote) =>
  fetch(`${uri}/posts/${id}`, {
    method: 'POST',
    headers,
    body: JSON.stringify({options: vote}),
  }).then(response => response.json())
    .then(data => data)
    .catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)

该函数接受'id'和'vote'两个字符串.id被用作请求中URI的一部分,并且投票作为选项提供,因此API知道如何处理它.两个参数都正确传递:

id = '8xf0y6ziyjabvozdd253nd'
vote = 'upVote'
Run Code Online (Sandbox Code Playgroud)

这是一个指向服务器/ API的GitHub存储库的链接:

Udacity Readable API

以及触发请求时网络的屏幕截图:

在此输入图像描述 在此输入图像描述

更新:添加了显示状态200的第二个屏幕截图.虽然它显示了这个并且似乎已经成功,但它仍然没有发布到服务器并且信息保持不变.

Chi*_*dra 7

您正在查看的是OPTIONS网络选项卡中的请求.对于跨源请求,每个请求前面都有一个请求,该OPTIONS请求告诉调用客户端(例如浏览器)远程服务器是否支持这些HTTP方法以便在crosss origin上下文中使用.

检查其他请求.如果OPTIONS服务器正确响应了请求,则浏览器必须自动跟进您的POST请求

编辑:此外,文档指定param名称,option而在您的屏幕截图中,它将出现options.

进一步阅读:CORS