2025年前端跨域设置(前端跨域设置请求头)

前端跨域设置(前端跨域设置请求头)p 最近项目中需要实现跨域访问资源 本来是挺简单的一个配置 但是没有找到适合的答案 这个寻找答案的过程 对于一名终端的开发者来说 是曲折的 p 关于跨域 CORS 这篇文章有介绍 而且也提供了跨域的解决方案

大家好,我是讯享网,很高兴认识大家。



 <p>    最近项目中需要实现跨域访问资源&#xff0c;本来是挺简单的一个配置&#xff0c;但是没有找到适合的答案。这个寻找答案的过程&#xff0c;对于一名终端的开发者来说&#xff0c;是曲折的。。。</p> 

讯享网

    关于跨域(CORS),这篇文章有介绍,而且也提供了跨域的解决方案。不过文中使用到的配置,会让所有其他域名的网站都能够访问我们服务器的资源,存在一定的安全隐患。

    

    较为安全的配置,应该是直接指定具体的域名。注意是Header add不是Header set,否则只有最后一行的配置生效

讯享网


讯享网

    但是如果b.com域名下有多个子域名(如img.b.com,pay.b.com...),都需要跨域访问我们服务器的资源,就需要将它们全部都配置一遍,一旦有新增域名,也需要修改配置。所以最好是允许*.b.com可以访问资源。

    一开始我以为只要将"http://www.b.com"换成"http://*.b.com"就可以解决问题了,可是发现根本不是这样的。这里使用通配符无法实现想要的效果,而是应该使用正则式!!!"http(s)?://(www.)?(b.com)$"

    所以最后的配置:(添加到httpd.conf中)

    如果上述配置后报错,则需要加载Header模块:LoadModule headers_module modules/mod_headers.so。

    如果提示Header模块不存在,则要添加到服务器:a2enmod headers。

    如果提示a2enmod命令找不到,那就安装这个命令吧。。。


===更新===

最近遇到一个问题:虽然不同域名可以访问到资源,但是在同一个浏览器中,b.com访问后,c.com就不能访问了。这个跟浏览器的缓存机制有关,需要在Apache跨域配置中添加下面一行

这里有详细说明

小讯
上一篇 2025-04-14 08:45
下一篇 2025-06-09 07:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/187834.html