CORS Pre-Flight 只有一种方法失败
CORS Pre-Flight fail only one method
我刚刚遇到了一个非常不寻常的问题。我正在编写一个带有 ASP.NET Web API 后端的 Ionic 应用程序。我通过将其添加到我的 WebApiConfig class:
的 register 方法来解决早期的飞行前 CORS 问题
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
在浏览每个页面并进行各种 $http.get 调用时,飞行前 CORS 正在发挥作用(以下是从 Chrome 开发人员工具获取的网络流量)
但是我最近在 WebApi 中创建了一个额外的方法:
[Authorize]
[Route("api/GetJobType")]
public IHttpActionResult GetJobType(int? id)
{
var model = new JobsModel();
return this.Ok(model.GetJobType(id.Value));
}
但是飞行前 OPTIONS 请求返回 404:
这是 $http.get 代码:
var url = ApiEndpoint.url + '/GetJobType/' + jobId;
$http.get(url).then(function(resp) {
alert(resp.data);
}, function(err) {
alert(err);
});
知道为什么只有一种方法的 OPTIONS 请求会失败,而其他方法都可以正常工作。
它似乎与 pre-flight 请求没有任何关系,这是您的路线。您收到 404,这意味着它找不到请求的资源。将您的参数添加到路线。
[Authorize]
[HttpGet, Route("api/GetJobType/{id}")]
public IHttpActionResult GetJobType(int? id)
{
try
{
var model = new JobsModel();
return Ok(model.GetJobType(id.Value));
}
catch
{
return InternalServerError();
}
}
我刚刚遇到了一个非常不寻常的问题。我正在编写一个带有 ASP.NET Web API 后端的 Ionic 应用程序。我通过将其添加到我的 WebApiConfig class:
的 register 方法来解决早期的飞行前 CORS 问题config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
在浏览每个页面并进行各种 $http.get 调用时,飞行前 CORS 正在发挥作用(以下是从 Chrome 开发人员工具获取的网络流量)
但是我最近在 WebApi 中创建了一个额外的方法:
[Authorize]
[Route("api/GetJobType")]
public IHttpActionResult GetJobType(int? id)
{
var model = new JobsModel();
return this.Ok(model.GetJobType(id.Value));
}
但是飞行前 OPTIONS 请求返回 404:
这是 $http.get 代码:
var url = ApiEndpoint.url + '/GetJobType/' + jobId;
$http.get(url).then(function(resp) {
alert(resp.data);
}, function(err) {
alert(err);
});
知道为什么只有一种方法的 OPTIONS 请求会失败,而其他方法都可以正常工作。
它似乎与 pre-flight 请求没有任何关系,这是您的路线。您收到 404,这意味着它找不到请求的资源。将您的参数添加到路线。
[Authorize]
[HttpGet, Route("api/GetJobType/{id}")]
public IHttpActionResult GetJobType(int? id)
{
try
{
var model = new JobsModel();
return Ok(model.GetJobType(id.Value));
}
catch
{
return InternalServerError();
}
}