跨域请求被阻止:同源策略禁止读取(URL)上的远程资源

时间:2018-12-18 14:06:31

标签: asp.net-web-api asp.net-core

我的Web应用程序具有多层(业务层,数据访问层,服务层和Ui层)
我在Ui层剃刀页面中调用服务层(Web API)(使用JQuery和Ajax)

<button id="btn">ddd</button>

script type="text/javascript">
    $(document).ready(function () {
        var filmtable = $("#DataTableHtmlId");
        $('#btn').click(function() {
            $.ajax({
                type: 'GET',
                dataType: "json",
                contentType: 'application/json; charset=utf-8',
                url: 'https://localhost:11111/api/film/1',
                withCredentials: true,
                AccessControlAllowCredentials: true,

                success: function(data) {
                    alert(data);
                },
                error: function(data) {

                    alert("err");
                }
        });
        });

    } );
</script>

当调用控制器触发最后一个ajax调用的视图时
出现错误 enter image description here

  

跨域请求被阻止:“同源起源”策略禁止读取https://localhost:11111/api/film/1处的远程资源。 (原因:   CORS标头“ Access-Control-Allow-Origin”缺失)。[了解详情]

     

跨源请求被阻止:同源策略禁止阅读   https://localhost:11111/api/film/1上的远程资源。 (原因:   CORS请求未成功。

搜索后,我发现了许多解决方案 在 ConfigureServices 中将 Cors 注册为

            //Cors policy is added to controllers via [EnableCors("CorsPolicy")]
            //or .UseCors("CorsPolicy") globally
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                    builder => builder
                        .AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                        .AllowCredentials());
            });

并在配置中以

的形式应用CORS
        //Apply CORS.
         app.UseCors("CorsPolicy");
         app.UseHttpsRedirection();
         app.UseAuthentication();
         app.UseMvc(); 

但是错误还会显示任何帮助吗?

1 个答案:

答案 0 :(得分:0)

评论解决方案

在api项目而不是ui项目中启用CORS配置。