Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Apache配置跨域资源共享

Apache中配置跨域资源共享的两种方式

作者:小樊

本文介绍了在Apache中配置跨域资源共享(CORS)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在Apache中配置跨域资源共享(CORS)可以通过修改Apache的配置文件或使用.htaccess文件来实现。以下是详细的步骤:

方法一:修改Apache配置文件

<Directory "/path/to/your/document/root">
    # 允许所有来源访问
    Header set Access-Control-Allow-Origin "*"
    # 允许的HTTP方法
    Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
    # 允许的HTTP头
    Header set Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"
    # 预检请求的有效期(秒)
    Header set Access-Control-Max-Age "86400"
</Directory>
sudo systemctl restart apache2

方法二:使用.htaccess文件

<IfModule mod_headers.c>
    # 允许所有来源访问
    Header set Access-Control-Allow-Origin "*"
    # 允许的HTTP方法
    Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
    # 允许的HTTP头
    Header set Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"
    # 预检请求的有效期(秒)
    Header set Access-Control-Max-Age "86400"
</IfModule>
sudo a2enmod headers
sudo systemctl restart apache2
指令/部分作用与说明
<Limit OPTIONS>这是最关键的部分。它将内部的指令作用域限定在 OPTIONS 方法的请求上,确保 Access-Control-Max-Age 等头部只返回给预检请求,而不是所有普通请求。
Header always set必须使用 always 关键字。普通的 Header set 在服务器返回非标准(如错误)响应时可能会失效,而 always set 能确保响应头被强制注入。
Access-Control-Max-Age单位是秒。86400 是 24 小时。注意:Chrome 浏览器硬性上限为 7200 秒(2小时),Firefox 上限为 86400 秒(24小时)。设置过大的值可能不生效。
Access-Control-Allow-Credentials如果你需要使用 Cookies 或 HTTP 认证信息,此值必须为 true。注意:此时 Access-Control-Allow-Origin 不能设为 *,必须指定具体的域名。

注意事项

通过以上步骤,你应该能够在Apache中成功配置跨域资源共享。

常见问题排查

到此这篇关于Apache中配置跨域资源共享的实现步骤的文章就介绍到这了,更多相关Apache配置跨域资源共享内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文