电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Nginx跨域問題解析與解決

瀏覽:170日期:2023-03-13 15:37:08
目錄
  • 什么是跨域
  • 跨域場景
  • 解決跨域的四種方式

什么是跨域

  • 域: 是指瀏覽器不能執行其他網站的腳本
  • 跨域: 它是由瀏覽器的 同源策略 造成的,是瀏覽器對 JavaScript 實施的安全限制,所謂同源(即指在同一個域)就是兩個頁面具有相同的協議 protocol,主機 host 和端口號 port 則就會造成 跨域

跨域場景

場景的跨域場景有哪些,請參考下表

當前url請求url是否跨域原因http://www.autofelix.cnhttp://www.autofelix.cn/api.php協議/域名/端口都相同http://www.autofelix.cnhttps://www.autofelix.cn/api.php協議不同http://www.autofelix.cnhttp://www.rabbit.cn主域名不同http://www.autofelix.cnhttp://api.autofelix.cn子域名不同http://www.autofelix.cn:80http://www.autofelix.cn:8080端口不同

解決跨域的四種方式

  • nginx的反向代理
  • 使用 nginx 反向代理實現跨域,是最簡單的跨域方式
  • 只需要修改 nginx 的配置即可解決跨域問題,支持所有瀏覽器,支持session,不需要修改任何代碼,并且不會影響服務器性能
// nginx配置server {    listen       81;    server_name  www.domain1.com;    location / {proxy_pass   http://www.domain2.com:8080;  #反向代理proxy_cookie_domain www.domain2.com www.domain1.com; #修改cookie里域名index  index.html index.htm;# 當用webpack-dev-server等中間件代理接口訪問nignx時,此時無瀏覽器參與,故沒有同源限制,下面的跨域配置可不啟用add_header Access-Control-Allow-Origin http://www.domain1.com;  #當前端只跨域不帶cookie時,可為*add_header Access-Control-Allow-Credentials true;    }}

jsonp請求

  • jsonp 是服務器與客戶端跨源通信的常用方法。最大特點就是簡單適用,兼容性好 兼容低版本IE,缺點是只支持 get 請求,不支持 post 請求
  • 原理時網頁通過添加一個 <script> 元素,向服務器請求 json 數據,服務器收到請求后,將數據放在一個指定名字的回調函數的參數位置傳回來
//jquery實現<script>$.getJSON("http://autofelix.com/api.php&callback=?", function(res) {     // 處理獲得的數據     console.log(res)});</script>
  • 后端語言代理
  • 可以通過一種沒有跨域限制的語言中轉一下,通過后端語言去請求資源,然后再返回數據
  • 比如 http://www.autofelix.cn 需要調用 http://api.autofelix.cn/userinfo 去獲取用戶數據,因為子域名不同,會有跨域限制
  • 可以先請求 http://www.autofelix.cn 下的 php 文件,比如 http://www.autofelix.cn/api.php,然后再通過該 php 文件返回數據
// api.php 文件中的代碼public function getCurl($url, $timeout = 5){    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_HEADER, 0);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);    $result = curl_exec($ch);    curl_close($ch);    return $result;}$result = getCurl("http://api.autofelix.cn/userinfo");return $result;
  • 后端語言的設置
  • 主要通過后端語言主動設置跨域請求,這里以 php 作為案例
// 允許所有域名訪問header("Access-Control-Allow-Origin: *");// 允許單個域名訪問header("Access-Control-Allow-Origin: https://autofelix.com");// 允許多個自定義域名訪問static public $originarr = [   "https://autofelix.com",   "https://baidu.com",   "https://csdn.net",];// 獲取當前跨域域名$origin = isset($_SERVER["HTTP_ORIGIN"]) ? $_SERVER["HTTP_ORIGIN"] : "";if (in_array($origin, self::$originarr)) {    // 允許 $originarr 數組內的 域名跨域訪問    header("Access-Control-Allow-Origin:" . $origin);    // 響應類型    header("Access-Control-Allow-Methods:POST,GET");    // 帶 cookie 的跨域訪問    header("Access-Control-Allow-Credentials: true");    // 響應頭設置    header("Access-Control-Allow-Headers:x-requested-with,Content-Type,X-CSRF-Token");}

到此這篇關于Nginx跨域問題解析與解決的文章就介紹到這了,更多相關Nginx跨域內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: Nginx
主站蜘蛛池模板: 压缩空气检测_气体_水质找上海京工-服务专业、价格合理 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | R507制冷剂,R22/R152a制冷剂厂家-浙江瀚凯制冷科技有限公司 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 上海logo设计 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 移动厕所租赁|移动卫生间|上海移动厕所租赁-家瑞租赁 | 辐射色度计-字符亮度测试-反射式膜厚仪-苏州瑞格谱光电科技有限公司 | 合肥网络推广_合肥SEO网站优化-安徽沃龙First | 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | 车辆定位管理系统_汽车GPS系统_车载北斗系统 - 朗致物联 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网| 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 南京蜂窝纸箱_南京木托盘_南京纸托盘-南京博恒包装有限公司 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 博客-悦享汽车品质生活| 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] |