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

Cors政策角度

夹谷浩博
2023-03-14

我在从Angular发送auth头jwt令牌时得到了下面的问题。CORS策略阻止从来源“http://localhost:4200”访问位于“http://localhost:52278/api/user/signup”的XMLHttpRequest:请求的资源上没有“Access-Control-Allow-Origin”标头。

            var origins = Configuration["CorsUrl"].Split(",");
            services.AddCors(options =>
            {
                options.AddPolicy("BasePolicy",
                builder =>
                {
                    builder
                    .AllowAnyMethod()
                    .WithOrigins(origins)
                    .AllowAnyHeader()
                    .AllowCredentials()
                    .AllowAnyMethod();
                });

            });
        app.UseAuthorization();
        app.UseCors("BasePolicy");
        app.UseHttpsRedirection();

棱角分明的:

    signUpAdmin(data: AdminSignUpModel) {
        return this.httpClient.post('user/signup', data,this.getCommonOptions());
    }
private _token: string = localStorage.getItem('auth_token');

   protected getCommonOptions() {
        const httpOptions = {
            headers: new HttpHeaders({
                'Content-Type': 'application/json',
                'Access-Control-Allow-Origin': '*',
                'Access-Control-Allow-Methods': '*',
                Authorization: `Bearer ${this._token}`,
                
            })
        };
        return httpOptions;
    }

共有1个答案

司马祖鹤
2023-03-14

CORS策略阻止从来源“http://localhost:4200”访问位于“http://localhost:52278/api/user/signup”的XMLHttpRequest:请求的资源上没有“Access-Control-Allow-Origin”标头。

若要解决此问题,请尝试在代码中指定允许的源,而不是从配置设置中获取数据,如下所示。

services.AddCors(options =>
{
    options.AddPolicy("BasePolicy",
    builder =>
    {
        builder
        .AllowAnyMethod()
        .WithOrigins("http://localhost:4200", "https://localhost:44336") 
        .AllowAnyHeader()
        .AllowCredentials()
        .AllowAnyMethod();
    });

});

请注意,指定的URL不能包含尾随斜杠(/),例如http://localhost:4200/

app.UseRouting();
//...

app.UseCors("BasePolicy");

app.UseAuthorization();

有关在ASP.NET核心中启用CORS的更多信息,请查看以下文档:

https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-5.0#cors-with-named-policy-and-middleware

 类似资料:
  • 这是否意味着浏览器拒绝用户向谷歌服务器发送请求,或者谷歌服务器拒绝响应用户的任何反馈?CORS限制将JavaScript限制为获取数据,所以我有点困惑。

  • 我需要更改我的AWS S3 bucket CORS策略,以便能够将我的ReactJS的文件上载到AWS S3,但我一直收到以下API响应: 应为参数。公司配置。CORSRules是一个数组。 我现在不知所措。有人能帮忙吗?

  • 这是我的ApiService类:

  • 我很难理解同源策略和“解决”它的不同方法。 很明显,同源策略是作为一种安全措施存在的,因此来自服务器/域的脚本不能访问来自另一服务器/域的数据。 也很明显,有时打破这一规则是很有用的,例如mashup应用程序访问来自不同服务器的信息以构建所需的结果。做到这一点的方法之一是CORS。 1)如果我没有错的话,CORS允许目标服务器通过在响应中添加一些标题来对浏览器说“您可以从自己那里获取数据/代码”。

  • 引言 小牛知识库(以下或称“我们”)非常重视您的隐私保护,您在使用我们的业务平台(xnip.cn)的产品和服务时,我们可能会收集和使用您的相关信息。我们希望通过本《隐私政策》向您说明,我们如何收集、使用、存储及共享您的个人信息,以及您如何访问、更新、控制和保护您的个人信息。 本《隐私政策》与您使用我们的服务关系紧密,希望您仔细阅读并理解,做出您认为适当的选择。您使用或继续使用我们的服务,即意味着您

  • 我有一条小路线,我想使用自定义的重新传递策略来重复向endpoint发送消息,但这种行为非常奇怪。看起来,重新交付政策只是在重复一个错误。我试图将所有交换发送到路由的开头,但策略不起作用,因为每次都在创建: 我做错了什么?当错误发生时,我想以间隔重复我的请求。我的骆驼版本是2.6 日志: