• NET Core 3.1 API项目 Cors跨域


    1、配置 CORS 跨域

    在Startup 的 ConfigureServices中添加

           #region CORS
                //跨域第一种方法,先注入服务,声明策略,然后再下边app中配置开启中间件
                services.AddCors(c =>
                {
                    //一般采用这种方法
                    c.AddPolicy("LimitRequests", policy =>
                    {
                        policy
                        .WithOrigins("http://127.0.0.1:1818", "http://localhost:8080", "http://localhost:8021", "http://localhost:8081", "http://localhost:1818")//支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 
                        .AllowAnyHeader()//Ensures that the policy allows any header.
                        .AllowAnyMethod();
                    });
                });
                
                #endregion

    2、启动中间件

    在Startup 的Configure 配置方法里,添加启用Cors中间件服务

           #region Cors 跨域配置
                app.UseCors("LimitRequests");
                // 跳转https 有Https时使用
                //app.UseHttpsRedirection();
                //使用静态文件
                app.UseStaticFiles();
                //使用cookie
                app.UseCookiePolicy();
                // 返回错误码
                app.UseStatusCodePages();//把错误码返回前台,比如是404
                #endregion

    注意:如果你使用了 app.UserMvc() 或者 app.UseHttpsRedirection()这类的中间件,一定要把 app.UseCors() 写在它们的上边,先进行跨域,再进行 Http 请求,否则会提示跨域失败。

    因为这两个都是涉及到 Http请求的,如果你不跨域就直接转发或者mvc,那肯定报错。

    3、ajax请求 两种方法都行

             $.get("/api/Login/Token", function (data, status) {
                        console.log(data);
                        $("#status-cors").html("状态: " + status);
                        $("#data-cors").html("数据: " + data? data.token:"失败");
                    });
              let postdata = {
                        "bID": 10
                    };
                    $.ajax({
                        type: 'post',
                        url: '/api/Values',
                        contentType: 'application/json',
                        data: JSON.stringify(postdata),
                        success: function (data, status) {
                            console.log(data);
                            $("#status-cors-post").html("状态: " + status);
                            $("#data-cors-post").html("数据: " + JSON.stringify(data));
                        }
                    });

    发布到IIS就可以测试了

  • 相关阅读:
    删除目录软链接注意事项
    使用Dnsmasq搭建本地dns服务器上网
    在CentOS 7 上安装广告服务器 Revive Adserver
    CentOS6 Squid代理服务器的安装与配置
    CentOS6 PXE+Kickstart无人值守安装
    Redis的初步安装
    创建交互式shell脚本对话框
    C 捕获 lua 异常错误
    iic 之24C256存储器 及PCF8563
    汉字的编码与字模点阵小结
  • 原文地址:https://www.cnblogs.com/shuaichao/p/12416538.html
Copyright © 2020-2023  润新知