Apache如何解决跨域问题
创始人
2024-03-24 11:04:44
0

方案一:直接在域名配置中允许跨域

缺点:安全性缺失。公交车,谁都能访问。相当于完全放弃跨域控制。
且无法发送登陆凭证,发送cookie等依然会被拦截

1.修改apache/conf/httpd.conf 文件

找到   #LoadModule headers_module modules/mod_headers.so,把#注释符去掉,目的是开启apache头信息自定义模块

2.找到你的虚拟主机文件 注意是被跨域的网站的  具体内容是这样的文件

也有可能是别的样子的,但是   不变

 
    DocumentRoot "E:/www/"
    ServerName test..com
    ServerAlias *.test.com
   
        AllowOverride All
        Require all granted
   

在这段配置中的 前面添加以下配置:

#对所有域名开放       

Header set Access-Control-Allow-Origin *   (这样加上一行)

#对指定域名开放

Header set Access-Control-Allow-Origin http://www.***.com  (或者这样加上一行)

重启apache生效。

方案二:php代码中增加跨域设置

$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : "*";
header('Access-Control-Allow-Origin:' . $origin);
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Headers: Content-Type, X-Requested-With, Cache-Control,Authorization");

优点:可以根据白名单来开启是否跨域。发送cookie等凭证不会被拦截
缺点:文件等静态文件不经过php处理,依然会被跨域拦截
上述代码没有加白名单,需要的自己加

方案三:.htaccess中添加设置

修改.htaccess配置文件,重启apache生效

SetEnvIf Origin "^http(s)?://(.+\.)?(submit.magazine.ubandev.com|localhost:8080)$" origin_is=$0
Header always set Access-Control-Allow-Origin %{origin_is}e env=origin_is
Header set Access-Control-Allow-Credentials true

优点:无需修改apache域名配置。静态文件也可设置响应头,可以跨域。正则之后响应头只有一个域名,可以发送cookie

相关内容

热门资讯

骑士和公主的爱情故事之类的电影 骑士和公主的爱情故事之类的电影魔法灰姑娘 公主新娘 金玫瑰洞 魔法奇缘
鼎捷数智跌2.04%,成交额1... 7月7日,鼎捷数智盘中下跌2.04%,截至13:17,报34.08元/股,成交1.27亿元,换手率1...
日产汽车考虑40亿美元的债券发...   据报道,日产汽车正考虑发售总计价值约40亿美元的美元、欧元和日元计价债券。  该公司正在考虑发行...
力芯微跌2.01%,成交额39... 7月7日,力芯微盘中下跌2.01%,截至13:19,报38.59元/股,成交3945.95万元,换手...
同洲电子2025年7月7日涨停... 2025年7月7日,同洲电子(sz002052)触及涨停,涨停价12.42元,涨幅10.01%,总市...
光明地产跌2.28%,成交额8... 7月7日,光明地产盘中下跌2.28%,截至13:20,报3.43元/股,成交8587.97万元,换手...
副部级领导调研闽源钢铁集团 7月3日,河南省政协副主席张震宇一行莅临闽源钢铁集团有限公司,开展“学查改·以企观政”服务走访调研活...
省创新典型!邢台8人6案例入选 转自:邢台发布省科技型企业家、企业“创新达人”、企业典型创新案例选树结果公布我市8人6案例入选近日,...
舜禹股份涨2.05%,成交额1... 7月7日,舜禹股份盘中上涨2.05%,截至13:02,报13.95元/股,成交1665.86万元,换...
永悦科技涨2.06%,成交额3... 7月7日,永悦科技(维权)盘中上涨2.06%,截至13:04,报6.44元/股,成交3028.39万...