加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Nginx通过CORS实现跨域

发布时间:2021-01-08 17:29:59 所属栏目:站长百科 来源:网络整理
导读:《Nginx通过CORS实现跨域》要点: 本文介绍了Nginx通过CORS实现跨域,希望对您有用。如果有疑问,可以联系我们。 什么是CORS CORS是一个W3C标准,全称是跨域资源共享(Cross-origin resource sharing).它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克

在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 跨域访问,浏览器不显示跳转后的链接

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读