如何为ASP.NET允许CORS

里亚德

我在尝试从JS / Ajax向我的WebAPI发出请求时遇到问题。在我的解决方案中,我有一个发布在srv02:2400上的Web API和我的网站在srv02:2300上发布

当我导航到页面http:// srv02:2300 / all-requests.aspx时,该页面加载正常,除了应该来自我的API的数据

我收到错误:

XMLHttpRequest cannot load http://srv02:2400/api/requests/find/1. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://srv02:2300' is therefore not allowed access. The response had HTTP status code 400.

但是,如果我使用URL http:// srv02:2400 / api / requests / find / 1并将其粘贴到浏览器中,它将为我提供正确的JSON列表!

我试图在全球范围内启用CORS作为建议在这里我通过API:

  1. 安装包Microsoft.AspNet.WebApi.Cors
  2. 通过添加以下内容来更新我的WebApiConfig.cs:

    var cors = new EnableCorsAttribute(“ http:// srv02:2400 ”,“ ”,“ ”); config.EnableCors(cors);

但是,这没有用。

如前所述,我正在以Ajax reqeusts的身份进行请求

$.ajax({
        url: "http://srv02:2400/api/requests/find/" + id,
        type: "GET",
        dataType: 'json',
        contentType: 'application/json',
        success: function (requests) {
             console.log('success');
        },
        error: function (err) {
            if (err) {
                console.log(err);
            }
        }
    });

我尝试将json更改为jsonp,因为在这里建议这样做,但是它不起作用。

关于如何在这里解决问题的任何想法。

谢谢!

不被爱

您的全局属性看起来不对。

我认为您希望改变两件事。

  • 您的CORS网址应该是您要允许的应用程序的网址(而不是您的apis网址),即:2300not :2400
  • 您没有选择有效的标题和方法(动词)。您要么需要在此处使用特定的值,要么使用*(如果在全局范围内应用,则可能更有意义)。

例如,您需要以下内容:

var cors = new EnableCorsAttribute("http://srv02:2300", "*", "*");
config.EnableCors(cors);

这应该指示浏览器(使用OPTIONS响应),如果他们想http://srv02:2300/*使用任何动词或标头来调用此API ,就可以了。如果另一个域尝试调用此API,那就不行了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何允许CORS用于ASP.NET WebForms终结点?

如何设置ASP.NET CORS OPTION以允许application / json

ASP.NET Cors > 只允许一个来源

在ASP.NET Core中允许Cors Origin

Asp.Net Core允许CORS中的IP范围

如何使用.NET Core 2配置Angular 6以允许来自任何主机的CORS?

如何为ASP.NET MVC使用Year Picker

如何为ASP.NET MVC编写路由

如何为Asp.NET MVC 5创建ClaimsIdentity对象?

如何为MVC(ASP.NET)项目正确使用NUGET?

如何为ASP.NET Core 2.1创建项目模板

如何为asp.net MVC 5实现ViewModels?

如何为引用托管在Amazon AWS上的托管ASP.NET Web API的本地文件启用CORS

具有CORS和AttributeRouting的ASP.NET Web API2不允许HTTP PUT

防止被Cors封锁。我如何获得允许?

如何使用通配符允许特定域的CORS?

如何在 NodeJS 14 中允许 CORS

我如何知道允许CORS的访问控制允许头?

当我在ASP.NET WebAPI CORS中发送POST数据时,HTTP CODE 405(不允许使用方法)

如何为ASP.NET Core创建精美的复选框模板?

ASP.NET 5(MVC6)如何为用户播种

如何为Gridview ASP .Net中的特定列和行设置编辑模式

asp.Net MVC如何为图表中的每个条形设置颜色?

如何为Asp.Net授权Google Stmpt。当我使用时出现以下错误

如何为ASP.NET修改此Regex以将年份限制为YYYY(MM / -dd / -yyyy)

如何为ASP.NET Core Angular应用设置默认端口

如何为ASP.NET Core服务提供程序编写EasyNetQ自动用户分派器?

如何为asp.net身份创建安全戳值(IUserSecurityStampStore)

如何为Jetbrains Rider asp.net项目指定基本URL或主机端口