【发布时间】:2021-08-05 14:18:05
【问题描述】:
我目前正在开发一个使用 ASP.NET Core MVC 的项目(视图使用 Vue 在另一个端口上运行)。我已经设置了我的模型和控制器,并且我已经使用 swagger 测试了这些。它们完全按预期工作。我已经在 swagger 上测试了 post 方法并且它可以工作,但是从我的角度来看,在另一个运行 Vue 和 Postman 的端口上的请求会返回 405 错误。检查 Postman 上的响应标头,我可以看到“允许:DELETE、GET、PUT”。因为我的视图将在另一个端口上运行,所以我已经在我的启动配置方法中添加了以下 CORS(目前不担心安全隐患):
app.UseCors(builder => {
builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
});
我的控制器具有以下 POST 方法:
[ResponseType(typeof (Review))]
[HttpPost]
public async Task Post(Review review)
{
db.Reviews.Add(review);
await db.SaveChangesAsync();
}
我正在从https://localhost:44334/reviews/Post 访问 Postman 上的 URL。评论是控制器,帖子是方法。我没有收到任何交叉原始控制错误,只有这个 405。为什么会这样,我该如何调试?
我试图发布到 https://localhost:44334/reviews/Post 但我的路由器没有这样设置。将 URL 更改为 https://localhost:44334/reviews/ 并将方法设置为 Post 工作并返回成功 200 响应。
【问题讨论】:
-
你能显示你的post请求代码吗?或者你如何使用 Postman。
-
您使用的是哪个版本的 .NET Core 运行时?
-
@Sergey 对于 Postman,我选择“POST”方法并输入 URL localhost:44334/reviews/Post。我已将 JSON 直接添加到请求正文中或发送空请求。标题保持不变,我没有做任何更改。
-
您是否尝试删除 [ResponseType(typeof (Review))] 我不知道这是为了什么。
-
@JeremyCaney 我不确定,我认为这是最新版本。我该如何检查以及这会对我产生什么影响?
标签: asp.net-core .net-core asp.net-core-mvc cors rest