每个人。我有与CORS相关的问题,需要您的帮助。如果可以,请你帮助我。 我有一个Web Api 2项目:
[AuthorizeUser]
public class ValuesController : ApiController
{
[Route("api/value/get")]
[HttpPost]
public IHttpActionResult Get()
{
return Ok("Hello world!");
}
}
在WebApiConfig.cs中配置
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
以及来自客户端Angular 1的请求
$scope.getvalue = function () {
var url = "http://localhost:59073/api/value/get";
$http({
method: "POST",
url: url,
header: {
'x-access-token': 'abc'
}
}).then(function onSuccess(res) {
console.log(res);
}).then(function onError(err) {
console.log(res);
});
}
但是我无法在服务器端获得POST请求标头的自定义标头“ x-access-token”。而且我也没有在Chrome的“网络”标签中看到任何“选项”请求。 请帮我。非常感谢。
答案 0 :(得分:0)
我知道这为时已晚。它将帮助遇到相同问题的人。在您的示例中,您已经为header属性分配了一个对象。我认为这是一个错字。应该是标题而不是标题。
var req = {
method: 'POST',
url: 'http://example.com',
headers: {
'Content-Type':'x-access-token': 'abc'
},
data: { test: 'test' }
}
$http(req).then(function(){...}, function(){...});
请参考Angular1.x的官方文档
https://docs.angularjs.org/api/ng/service/ $ http#setting-http-headers