当前位置: 首页 > 知识库问答 >
问题:

如何在asp中为每种类型的请求启用Cors。净核心3.1

齐飞星
2023-03-14

如何为核心3.1中的每种类型asp.net请求启用Cors?

我遵循的MS文档,但他们似乎不工作。

注意:我能够实现特定领域的cors,但不是每个领域。例如,我已将以下配置应用于我的项目:

>

服务。AddCors();

在我添加的Configure()方法中:

app.UseCors(构建器=

但是当我试图从另一个url访问jQuery的API时,我会得到:

访问位于“”的XMLHttpRequesthttps://localhost:44314/Reservation“起源”https://localhost:44361'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在'access control Allow Origin'标头。

现在,如果我把URL放在的方式,我可以访问API:

app.UseCors(builder =>
{
    builder
    .WithOrigins("https://localhost:44361")
    .AllowAnyMethod()
    .AllowAnyHeader()
    .AllowCredentials();
});

我的问题是如何无限制地访问每个URL(即域、子域等)的API。应用*不起作用。

请帮忙。

共有2个答案

白子昂
2023-03-14

这应该对你有好处。忽略MVC部件,我只是为您添加了一个,以确保您的管道顺序是正确的

public void ConfigureServices(IServiceCollection services)
{
      services.AddCors();
      services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseCors(
        options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()
    );

    app.UseMvc();
}
桂德义
2023-03-14

您需要允许对以下各项执行任何原点操作:

builder。AllowAnyOrigin()

任何带有AllowCredentials的源代码

不允许从任何来源发送凭据是出于设计。

您可以使用以下方法来解决此问题

builder。设置原始值(=

我不认为这是一个很好的解决方案,因为它消除了useCredentials()的好处。

笔记

在标头中发送JWT不需要使用凭据。如果您需要在请求中发送Cookie,则此选项适用。允许任何来源并启用useCredentials会导致安全漏洞,这就是默认情况下不允许的原因。

有关更多信息,您应该阅读

访问控制允许凭据头到底是做什么的?

CORS:当凭据标志为true时,无法在访问控制允许原点中使用通配符

 类似资料:
  • 我们正在开发具有移动部分和网络用户界面的应用程序。Web UI使用角,我们在后端配置cors时遇到了问题。我们的代码如下(只是对我们的问题很重要的代码): 从stackoverflow上的文档和其他帖子来看,这应该是可行的,但不是。我们错过了什么? thnx 编辑: 这是邮递员的请求: 卷曲'https://guw.azurewebsites.net/api/token'-X OPTIONS-H'

  • 我正在实现确认电子邮件功能。我正在向用户发送一封帐户激活电子邮件,电子邮件中有激活链接。我正在尝试,当用户单击电子邮件中的链接时,它会将用户重定向到我的方法ConfirmEmail之一,该方法采用两个参数user,即加密的电子邮件和代码。当我单击调试器设置为该ConfirmEmail方法的链接时,它不会出现在那里。 确认电子邮件方式: 电子邮件中的链接如下所示: https://localhost

  • 在这里,我使用了一个来自的HTTP POST请求,它在. net核心Web API调用中命中,但我没有将响应输出返回到,并且在控制台上出现了一个错误: “访问位于的XMLHttpRequest”http://localhost:55654/api/login/auth“起源”http://localhost:4200'已被CORS策略阻止:请求的资源上不存在'Access Control Allo

  • 我正在尝试使用我的沙盒模式通过PayPal运行付款。NET CORE 3项目。这个想法是让客户能够选择是使用他/她的PayPal账户还是信用卡付款。我正在使用PayPal-NET-SDKv2.0.0-rc2 我正在努力理解这是否是正确的运行顺序: 使用 这是正确的执行命令吗?

  • 问题内容: 我有一个angular.js应用程序,我需要做CORS请求。 我想使用以下角度资源定义我的休息服务“角度”:http : //docs.angularjs.org/tutorial/step_11。 但是我还没有找到一种方法来使它工作。在google上,我找到了以下示例代码:http : //jsfiddle.net/ricardohbin/E3YEt/,但这似乎不适用于angular