【发布时间】:2018-04-13 01:54:18
【问题描述】:
我在使用 Windows 身份验证时遇到问题,需要预检请求才能登录。但是,尽管在我的启动文件中启用了 CORS,但应用程序将无法满足预检“Allow-Access-Control-Origin”要求。
无法加载http://localhost:1190/api/test:对预检的响应 请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:8080” 访问。
我在 localhost:8080 上运行 SPA
我有一个带有凭据的 axios POST
function identityLogin () {
const url = BASE_URL + 'api/token'
axios.get(url, {withCredentials: true}).then(response => {
if (response.statusText === 'OK') {
.....
} else {
....
}
})
.catch(error => {
console.log(error)
....
})
}
在我的 startup.cs 我有
app.UseCors(builder => builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials()
);
app.UseMvc();
然后,当我第一次获得 Windows 凭据时,以前的开发人员写道:
[HttpGet("api/token")]
[Authorize]
public async Task<IActionResult> Get()
{
this.Response.Headers.Add("Access-Control-Allow-Origin", "http://localhost:8080");
this.Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type,Authorization");
this.Response.Headers.Add("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
this.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
.........
}
是否持久并可能与 UseCORS 混淆?是否存储了 cookie?
我想要的只是 Windows 凭据检查数据库,然后用令牌响应。
**编辑** 我指定了具有相同结果的来源。
app.UseMvc();
app.UseCors(builder => builder
.WithOrigins("http://localhost:8080")
.AllowAnyMethod()
.AllowAnyHeader(
.AllowCredentials());
【问题讨论】: