【问题标题】:How to fix No 'Access-Control-Allow-Origin' error in dotnet core web api如何修复 dotnet core web api 中没有“Access-Control-Allow-Origin”错误
【发布时间】:2017-12-17 07:35:32
【问题描述】:

我有dotnet core web api 应用程序在尝试通过 IP 地址从另一台计算机或同一主机发送请求时返回以下错误:

XMLHttpRequest 无法加载 http://10.50.1.46:2280/api/login/。回复 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://10.50.1.46:8080” 使用权。响应的 HTTP 状态代码为 400。

客户端应用是 vue.js 应用。这是登录方法 sn-p 失败:

    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

知道怎么解决吗?

【问题讨论】:

  • 所以问题的核心是您的服务器显然没有正确响应 CORS 预检请求,因此出现错误消息。您可以通过删除“Content-Type”标头来消除对预检请求的需求,或者教您的服务器如何处理 CORS 预检,我不知道该怎么做:-(。

标签: rest api cors .net-core


【解决方案1】:

在 ConfigureServices 中的 Startup.cs 上输入以下行:

 services.AddCors(options => options.AddPolicy("Cors",
            builder =>
            {
                builder.
                AllowAnyOrigin().
                AllowAnyMethod().
                AllowAnyHeader();
            }));

在配置方法中输入这一行:

app.UseCors("Cors");

更多信息在这里:https://docs.microsoft.com/en-us/aspnet/core/security/cors

【讨论】:

    猜你喜欢
    • 2016-08-28
    • 2021-01-07
    • 1970-01-01
    • 2018-07-18
    • 2017-12-06
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    相关资源
    最近更新 更多