跨域相关

1

 2

 

 

跨域不成功

 

方案一:

 

 

ConfigureServices下新增

#region 跨域配置(3-1)  
            services.AddCors(option =>
            {
                option.AddPolicy(name: "RayCors", policy =>
                {
                    policy.AllowAnyHeader()
                    .AllowAnyMethod()
                    .AllowCredentials()
                    .AllowAnyOrigin()
                    .WithOrigins(Configuration["RayCorsUrls"].Split(',')).AllowAnyHeader().AllowAnyMethod();
                });
            });
             
            
            #endregion

Configure下新增红色部分

app.UseStaticFiles();
            app.UseRouting();
            app.UseCors("RayCors");//跨域配置(3-2).备注位置存放顺序,放下面不起效果
            app.UseAuthorization();

 

方案二:

第一种方法:被请求页面加上下面的代码,最好content填写域名;

<meta http-equiv="Access-Control-Allow-Origin" content="*">
  • 1

第二种方法:在请求控制器加上加上下面的代码;

header("Access-Control-Allow-Origin: *");
  • 1

第三种方法:IIS、Apache、Nginx可以直接配置Access-Control-Allow-Origin 跨域,具体如下:

1、IIS配置:只需要在IIS添加HTTP响应标头即可!

 Access-Control-Allow-Headers:Content-Type, api_key, Authorization
Access-Control-Allow-Origin:*
(该方法已验证,有效,不需要设置其它)

2、Apache配置:主要修改http.conf

<Directory "/Users/cindy/dev">
AllowOverride ALL
Header set Access-Control-Allow-Origin *
</Directory>
  • 1
  • 2
  • 3
  • 4

或者,修改Apache伪静态规则文件.htaccess

<IfModule mod_setenvif.c>  
    <IfModule mod_headers.c>  
        <FilesMatch "\.(cur|gif|ico|jpe?g|png|svgz?|webp)$">  
            SetEnvIf Origin ":" IS_CORS  
            Header set Access-Control-Allow-Origin "*" env=IS_CORS  
        </FilesMatch>  
    </IfModule>  
</IfModule>  

3、Nginx配置:主要是修改nginx.conf;

location ~* .(eot|ttf|woff|svg|otf)$ {
add_header Access-Control-Allow-Origin *;
}
上面的eot|ttf|woff|svg|otf,表示请求后缀类型,或者也可以直接写如下代码:

location / {
add_header Access-Control-Allow-Origin *;
}

总结:我个人觉得最简单的方法莫过于前面两种方法了,如果看了此文章还有什么不明白的可以直接给我评论留言。

posted @ 2023-07-27 17:50  枫-  阅读(8)  评论(0编辑  收藏  举报