我有dotnet core
web api app,当尝试通过IP地址从另一台计算机或同一主机发出POST请求时会返回以下错误:
XMLHttpRequest无法加载http://10.50.1.46:2280/api/login/。响应 预检请求没有通过访问控制检查:否 '访问控制允许来源'标题出现在请求的上 资源。起源' http://10.50.1.46:8080'因此是不允许的 访问。响应的HTTP状态代码为400。
客户端应用是vue.js应用。这是登录方法片段失败:
login: function(e) {
e.preventDefault();
this.connectionError = false;
this.loginError = false;
var headers = { 'Content-Type': 'application/json' };
var loginUrl = 'http://10.50.1.46:2280/api/login/';
var data = {Login: this.user.login, Password: this.user.password};
console.log('Sending login request for user : ' + this.user.login);
this.$http.post(loginUrl, data, {headers: headers})
.then(response => {
// get body data
var data = response.body.data;
setCredentials(this.user.login, data.accessToken, data.refreshToken);
this.$router.push('/home');
}, response => {
console.log(response);
if(response.status == 0) {
this.connectionError = true;
} else {
this.loginError = true;
}
});
}
这是我的Startup.cs文件。以下是请求和回复headers info
知道怎么解决吗?
答案 0 :(得分:4)
输入以下行:
services.AddCors(options => options.AddPolicy("Cors",
builder =>
{
builder.
AllowAnyOrigin().
AllowAnyMethod().
AllowAnyHeader();
}));
并在Configure方法中输入以下行:
app.UseCors("Cors");
此处有更多信息:https://docs.microsoft.com/en-us/aspnet/core/security/cors