我有以下两个独立的函数来Post和Update a comment。它们几乎相同,但是UpdateComment函数会抛出Post 500错误。
export function PostComment(commentData) {
return dispatch => {
dispatch(dataOperationBegin());
axios({
method: 'post',
url: 'api/AssessmentDiscussionPost/Create',
data: {
Content: commentData.Content,
DoesAgree: commentData.DoesAgree,
ParentPostId: commentData.ParentPostId,
SubmissionId: commentData.SubmissionId,
RubricItemId: commentData.RubricItemId
}
})
.then(response => {
dispatch(postCommentSuccess(response.data));
})
.catch(error => { dataOperationFailure(error) });
};
}
export function UpdateComment(commentData) {
return dispatch => {
dispatch(dataOperationBegin());
axios(
{
method: 'post', url: 'api/AssessmentDiscussionPost/Update',
data: {
Id: commentData.Id,
Content: commentData.Content,
PostOwnerId: commentData.PostOwnerId,
ParentPostId: null,
SubmissionId: commentData.SubmissionId
},
})
.then(response => {
dispatch(updateCommentSuccess(response.data));
})
.catch(error => { dataOperationFailure(error) });
};
}下面是服务器上对应的api/AssessmentDiscussionPost/Create web api函数,该函数被正确调用:
[Authorize(Roles = "Student, Instructor")]
[HttpPost]
[Route("api/AssessmentDiscussionPost/Create")]
public AssessmentDiscussionPostDTO Create([FromBody] AssessmentDiscussionPost post)
{下面是NEVER调用的api/AssessmentDiscussionPost/Update的web api函数:
[Authorize(Roles = "Student, Instructor")]
[HttpPost]
[Route("api/AssessmentDiscussionPost/Update")]
public AssessmentDiscussionPost Update([FromBody] AssessmentDiscussionPost post)
{我花了几个小时在这上面,但仍然没有任何线索。至少有人能引导我找出真正的问题。
发布于 2019-07-14 04:47:36
你的问题肯定与BE相关,但是当你应该使用PATCH或PUT时,为什么要用POST来更新东西呢?也许这就是原因所在。
https://stackoverflow.com/questions/57022689
复制相似问题