POST 使用 fetch() 请求 Returns 204 无内容
POST Request Using fetch() Returns 204 No Content
我正在向 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));
该函数接受一个 'id' 和一个 'vote',这两个字符串。 id 在请求中用作 URI 的一部分,并且投票作为选项提供,因此 API 知道如何处理它。两个参数都被正确传递:
id = '8xf0y6ziyjabvozdd253nd'
vote = 'upVote'
这是 link GitHub 存储库的 server/API:
以及触发请求时的网络截图:
UPDATE:添加了显示状态 200 的第二个屏幕截图。虽然它显示了这个并且似乎已经成功,但它仍然没有 post 到服务器并且信息保持不变。
您正在查看的是网络选项卡中的 OPTIONS
请求。对于跨源请求,每个请求之前都有一个 OPTIONS
请求,该请求告诉调用客户端(例如浏览器)远程服务器是否支持这些 HTTP 方法以用于跨源上下文。
查看其他请求。如果服务器正确响应了 OPTIONS
请求,浏览器必须自动跟进您的 POST
请求
编辑:
此外,文档将参数名称指定为 option
而在您的屏幕截图中它显示为 options
.
进一步阅读:CORS
尝试这样声明 headers:
var headers = new Headers({
'Content-Type': 'application/json',
'Authorization': 'this-can-be-anything',
})
我正在向 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));
该函数接受一个 'id' 和一个 'vote',这两个字符串。 id 在请求中用作 URI 的一部分,并且投票作为选项提供,因此 API 知道如何处理它。两个参数都被正确传递:
id = '8xf0y6ziyjabvozdd253nd'
vote = 'upVote'
这是 link GitHub 存储库的 server/API:
以及触发请求时的网络截图:
UPDATE:添加了显示状态 200 的第二个屏幕截图。虽然它显示了这个并且似乎已经成功,但它仍然没有 post 到服务器并且信息保持不变。
您正在查看的是网络选项卡中的 OPTIONS
请求。对于跨源请求,每个请求之前都有一个 OPTIONS
请求,该请求告诉调用客户端(例如浏览器)远程服务器是否支持这些 HTTP 方法以用于跨源上下文。
查看其他请求。如果服务器正确响应了 OPTIONS
请求,浏览器必须自动跟进您的 POST
请求
编辑:
此外,文档将参数名称指定为 option
而在您的屏幕截图中它显示为 options
.
进一步阅读:CORS
尝试这样声明 headers:
var headers = new Headers({
'Content-Type': 'application/json',
'Authorization': 'this-can-be-anything',
})