今天在在跨域调试网站注册功能的时候,提示如下错误:
已拦截跨源请求:同源策略禁止读取位于 * 的远程资源。(原因:CORS 头缺少 ‘Access-Control-Allow-Origin’)。[详细了解]
解决办法:
其实,解决这个办法有很多,推荐方法有如下几种:
- 第一种方法:被请求页面加上下面的代码,最好content填写域名;
<meta http-equiv="Access-Control-Allow-Origin" content="*">
- 第二种方法:在请求控制器加上加上下面的代码;
header("Access-Control-Allow-Origin: *");
- 第三种方法: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 *
或者,修改Apache伪静态规则文件.htaccess
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 *;
}
总结:我个人觉得最简单的方法莫过于前面两种方法了,如果看了此文章还有什么不明白的可以直接给我评论留言。