编写AngularJS应用程序。在POST时,它会收到401错误。邮差没有。
这是追踪与AngularJS存在而不是邮差的CORS问题的追踪。
我的AngularJS POST看起来像这样:
function(resetRequest) {
return $http({
method: 'POST',
url: baseUrl,
data: resetRequest,
params: {
}
})
.then(function (response) {
return response.data;
});
我对ASP.Net网络API进行了以下更改,以尝试解决我的POST CORS问题:
在Startup.cs中:
var corsPolicy = new CorsPolicy
{
AllowAnyMethod = true,
AllowAnyHeader = true
};
var origins = ConfigurationManager.AppSettings["cors-orgins-local"];
if(origins != null)
{
foreach(var origin in origins.Split(','))
{
corsPolicy.Origins.Add(origin);
}
}
else
{
//TODO: Throw exception
}
corsPolicy.SupportsCredentials = true;
var corsOptions = new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context => Task.FromResult(corsPolicy)
}
};
app.UseCors(corsOptions);
在IdentiyConfig.cs中,在Create(..)中:
var origins = ConfigurationManager.AppSettings["cors-orgins-local"].Split(',');
context.Response.Headers.Add("Access-Control-Allow-Origin", new[] {origins[0]});
context.Response.Headers.Add("Access-Control-Allow-Credentials", new[] {"true"});
这些更改已经消除了在POST时出现在浏览器控制台中的CORS错误,这些错误与起源以及有关源和凭据的标题有关。
如何解决此401错误?