跨域相关
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 *;
}
总结:我个人觉得最简单的方法莫过于前面两种方法了,如果看了此文章还有什么不明白的可以直接给我评论留言。