Udacity Project Readable:改变投票得分

时间:2018-01-03 01:39:15

标签: reactjs http promise fetch

我正在做Udacity提供的React nanodegree,正在开发第二个项目Readable。我在下面的代码中尝试使用新分数更新帖子。

 handleVote = (vote) => {
console.log(vote);
const url = `${process.env.REACT_APP_BACKEND}/posts/` + this.props.id;
fetch(url, { credentials: 'include', 
             option : "" + vote,
             headers: { 'Authorization': 'whatever-you-want' },  
             method: 'POST'
           } 
     ).then((response) => response.json()
     .then((json) => { console.log(json) })
     .catch((errors) => { console.log(errors); }));

}

我得到了回复,但似乎有相同的分数。我不确定我做错了什么。我已经尝试添加字符串作为选项,也添加到正文。 “投票”是字符串“upVote”或“downVote”。

在文档中,他们提供了所有内容:

| `POST /posts/:id` | Used for voting on a post. | **option** - [String]: Either `"upVote"` or `"downVote"`. |

如果有人在我愿意帮助之前完成了这个项目。我不确定在请求中指定“upVote”或“downVote”的位置。

1 个答案:

答案 0 :(得分:0)

在您的API POST方法中,option:<option-value>对需要指定为POST请求的body,例如body: JSON.stringify({ option: $ {vote} }),而不是option : "" + vote,。见Request bodies can be set by passing body parameters。在这种情况下,您还需要在每个this link的标题'Content-Type': 'application/json'中指定(除'Authorization': 'whatever-you-want'之外),如@shaochuancs建议的那样。