asp.net core 2.0 api ajax跨域问题

API配置:
services.AddCors(options => { options.AddPolicy("any", builder => { builder.WithOrigins("http://localhost") //指定允许来源的主机访问 .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials();//指定处理cookie }); }); //设置全局筛选器,全局控制器启用core services.Configure<MvcOptions>(options => options.Filters.Add(new CorsAuthorizationFilterFactory("any")));

客户端:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <script src="jquery.min.js"></script>
</head>
<body>
    <input id="login" value="登录" type="button" />
    <input id="sava" value="保存" type="button" />
    <span id="message"></span>
    <script>
 
        $("#sava").click(function () {
            $.ajax({
                type: 'GET',
                url: "http://localhost:54821/api/v1/garbage/type",
                data: {  },
                dataType: "json",
                //必须有这项的配置,不然cookie无法发送至服务端
                xhrFields: {
                    withCredentials: true
                },
                success: function (result) {
                alert(result.code);
                    $("#message").html(result);
                },
                error: function (xhr,status) {
                alert("失败");
                    $("#message").html(status);
                }
            });
        })
    </script>
</body>
</html>

此时设置全局启用,控制器中可以使用

posted @ 2018-03-09 19:47  mebius  阅读(328)  评论(1编辑  收藏  举报