vue.js - 405 使用 Vue 3.0 应用程序中的 axios 到 .Net Core 2.2 并在策略中使用 AllowAnyMethod 的响应
问题描述
我正在失去理智并且阅读了很多博客,所以问题和文档我确信这是一个简单的修复,我现在完全看不到。
我有一个从 vuejs 应用程序到 .net core 2.2 api 项目的 axios 后调用。按照 Microsoft 的启用 CORS 指南,我在服务中使用了访问策略并装饰了控制器。请参阅下面的代码。
飞行前选项响应为 204,实际调用中的 405 响应引用允许:DELETE、GET、PUT 作为允许的方法……我在这里错过了什么?我在政策中有 .AllowAnyMethod 但它似乎被完全忽略了。一位使用 WebAPI 2.2 的同事。项目具有完全相同的代码,并且可以正常工作。
启动.cs
services.AddCors(options =>
{
options.AddDefaultPolicy(
builder =>
{
builder.WithOrigins("http://example.com",
"http://www.contoso.com");
});
options.AddPolicy("VueFrontEnd",
builder =>
{
builder.WithOrigins("http://localhost:30001/")
.AllowAnyHeader()
.AllowAnyMethod();
});
});
控制器
[EnableCors("VueFrontEnd")]
[HttpPost]
public async Task<JsonResult> DoesItExist(string searchString)
{
var data = new string[] { "A", "B", "C" };
var result = data.Any(searchString.Contains);
return Json(JsonConvert.SerializeObject(result));
}
Vue
getClientsByPartialString(search: string) {
Axios({
method: 'post',
url: 'https://localhost:44380/api/values/DoesItExist',
crossDomain: true,
data: {
name: 'world',
},
})
}
解决方案
这让我很难过。这是路由。
添加 [HttpPost("/TheApi")] 装饰器对其进行排序。
我很惭愧。我使用的是完整的 URL http://localhost:port/api/values/themethod,尽管在控制器上设置了路由,但我还是失败了。
让我担心的一件事是为什么这与 GET 和 PUT 一起工作并且只在 POST 上失败。我没有答案。
推荐阅读
- android - Firebase FCM 变得非常不稳定。寻找解决方案/替代方案
- dart - 如果没有其他情况如何创建内联
- android - 无法解析 GoogleSignInClient
- android - 如何使用差异项目回调更新回收站视图中的项目?
- reactjs - 反应头像编辑器没有上传按钮
- c# - 在 _layout 页面中使用实体框架的下拉列表
- php - CodeIgniter 查询返回一个空数组
- excel - 在pdf上自动生成excel的问题
- c++ - STM32L011:中断处理程序中无法清除中断标志
- django - Nginx 不为 Amazon EC2 中的 Django 提供静态文件 - 404 错误