zoukankan      html  css  js  c++  java
  • abp.vnext vue 跨域设置

    在vue中js访问非同地址的webapi,会报Access to XMLHttpRequest at 'xxxx' from origin 'http://localhost:9527' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource。主要是调用的webapi没有设置允许跨域的地址。

    1.xxxModule中设置CorsPolicyName值。

    private const string DefaultCorsPolicyName = "Default";

    2.配置configurecors

     private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
            {
                context.Services.AddCors(options =>
                {
                    options.AddPolicy(DefaultCorsPolicyName, builder =>
                    {
                        builder
                            .WithOrigins(
                                configuration["App:CorsOrigins"]
                                    .Split(",", StringSplitOptions.RemoveEmptyEntries)
                                    .Select(o => o.RemovePostFix("/"))
                                    .ToArray()
                            )
                            .WithAbpExposedHeaders()
                            .SetIsOriginAllowedToAllowWildcardSubdomains()
                            .AllowAnyHeader()
                            .AllowAnyMethod()
                            .AllowCredentials();
                    });
                });
            }

    3.在ConfigureServices中调用ConfigureCors

     public override void ConfigureServices(ServiceConfigurationContext context)
            {
                var hostingEnvironment = context.Services.GetHostingEnvironment();
                var configuration = context.Services.GetConfiguration(); 
                ConfigureUrls(configuration);
                ConfigureBundles();
                ConfigureAuthentication(context, configuration);
                ConfigureAutoMapper();
                ConfigureVirtualFileSystem(hostingEnvironment);
                ConfigureLocalizationServices();
                ConfigureNavigationServices();
                ConfigureAutoApiControllers();
                //CorsOrigins 设置
                ConfigureCors(context, configuration);
                ConfigureSwaggerServices(context.Services);
            }

    4.在OnApplicationInitialization使用UseCors

    app.UseCors(DefaultCorsPolicyName);

    5.在appsettings.json中设置允许跨域访问的地址

    "App": { 
        "CorsOrigins": "https://*.ti.com,http://localhost:4200,http://localhost:9527"
      }, 
  • 相关阅读:
    犀牛书学习笔记(2):对象和数组
    犀牛书学习笔记(1):语法结构、数据类型和值、表达式和运算符
    小学了一下css hack
    git学习系列--六分之一
    稍览了一下CommonJS
    意识流_六分之一
    两升的心思系列之-----粒子的预备
    mybatis_延迟加载
    mybatis_动态SQL
    mybatis_mapper动态代理
  • 原文地址:https://www.cnblogs.com/lecone/p/14411508.html
Copyright © 2011-2022 走看看