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"
      }, 
  • 相关阅读:
    Java中的4种代码块
    Java enum(枚举)的用法详解(转)
    Java 可变参数列表
    SQL Server 查询处理中的各个阶段(SQL执行顺序)
    SQL Server 数据查询 整理
    MYSQL常用命令
    SQL的主键和外键约束(转)
    Servlet工作原理(转)
    servlet、genericservlet、httpservlet之间的区别(转)
    关于MyEcplise中常见的问题和解决方案
  • 原文地址:https://www.cnblogs.com/lecone/p/14411508.html
Copyright © 2011-2022 走看看