linux系统宝塔面板解决跨域访问资源问题

今天在更新公司官网的时候出现了跨域访问资源的问题,在域名不同或者是端口不同的情况下调用资源的时候就会提示错误。这个错误会在浏览器的控制台提示。

我的问题是,我把二级域名绑定在主域名下的二级目录,二级域名页面需要调用主域名下的一个公共头部html文件,利用jq引入这个文件(顺便简单写一下方法),但是调用并不成功,根本就没有出现应该出现的头部banner,起初我以为是我的代码有问题,我检查了几遍代码都没有问题,最后用火狐浏览器的控制台一看果然有问题,提示拦截了跨域资源请求,原因是CORS 头缺少 ‘Access-Control-Allow-Origin’。

1
2
3
4
5
6
7
//html使用jQuery调用公共头部的方法
<script href="jQuery.js" type="tjavascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".allhead").load("./head.html");#这个文件位置可以使用绝对问题,但是域名不一致会产生跨域资源请求响应问题,本文就是这样产生的。
});
</script>

服务器是linux系统,宝塔面板,nginx的web运行环境,在宝塔面板后台的网站主域名配置文件添加 【add_header ‘Access-Control-Allow-Origin’ ‘*’;】,完美解决问题。例如

1
2
3
4
5
6
7
server
{
listen 80;
add_header 'Access-Control-Allow-Origin' '*';   ###这个位置的*指的是响应所有网站的资源请求,当然这样不太安全,可以改为需要响应资源的二级域名。
server_name www.idcet.com ;
....
}

 

喜欢这篇文章吗?按个赞吧,不会令你失望!

发表评论