设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

Nginx通过CORS实现跨域(3)

发布时间:2021-01-08 01:06 所属栏目:53 来源:网络整理
导读:在httpd配置或.htaccess文件中添加如下语句 SetEnvIf Origin "^(.*\.example\.com)$" ORIGIN_SUB_DOMAIN=$1 ?Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN PHP中启用COR

在httpd配置或.htaccess文件中添加如下语句

SetEnvIf Origin "^(.*\.example\.com)$" ORIGIN_SUB_DOMAIN=$1 ?
Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN

PHP中启用CORS

通过在服务端设置Access-Control-Allow-Origin响应头

  • 允许所有来源访问
<?php
header("Access-Control-Allow-Origin: *");
?>
  • 允许来自特定源的访问
<?php
header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
?>
  • 配置多个访问源

由于浏览器实现只支持了单个origin、*、null,如果要配置多个访问源,可以在代码中处理如下

<?php
$allowed_origins ? = array( ?
 ? ? ? ? ? ? ? ? ? ? ? ? ? ?"http://www.example.com" ?,?
 ? ? ? ? ? ? ? ? ? ? ? ? ? ?"http://app.example.com" ?,?
 ? ? ? ? ? ? ? ? ? ? ? ? ? ?"http://cms.example.com" ?,?
 ? ? ? ? ? ? ? ? ? ? ? ? ?); ?
if (in_array($_SERVER['HTTP_ORIGIN'],$allowed_origins)){ ? ?
 ? ?@header("Access-Control-Allow-Origin: " . $_SERVER['HTTP_ORIGIN']); ?
}
?>

HTML中启用CORS

<meta http-equiv="Access-Control-Allow-Origin" content="*">

参考文档

http://www.google.com

http://t.cn/RZEYPmD

http://t.cn/RhcAN2d

http://to-u.xyz/2016/06/30/nginx-cors/
http://coderq.github.io/2016/05/13/cross-domain/

作者:Mike

文章出处:运维之美

 

推荐阅读

Nginx与httpd对比

nginx 利用 proxy 反向代理解决 Ajax 跨域访问,浏览器不显示跳转后的链接

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读