U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 常见问题解答 >

前端解决跨域问题的常见方法及优缺点对比

来源:http://www.tudoupe.com时间:2022-05-22

解决跨域问题的方案

  • 一、什么是跨域?
    • 什么是同源策略?
  • 二、常见的跨域场景
  • 三. 解决共同的交叉领域关切问题
    • 1.JSONP跨域
      • (一)原理
      • (二)示例
        • 前端代码:
        • 后端代码:
      • (三) JSONP的利弊
    • 2. CORS是跨部资源分享。
      • (一) CORS究竟是什么?
      • (二) 基本和复杂的要求
        • 简单请求
          • CORS需要的反应信头字段,从Access-Control-Allow-Origin开始。
        • 非简单请求
          • 预检请求
          • 预检请求的回应
      • (三)示例
        • 前端代码:
        • 后端代码:
      • (四) CORS的利弊
    • 3.Cross-domain Nodejs 中件剂
      • (一)原理
      • (二)示例
        • 前端代码:
        • 中间件服务器代码:
      • (三) nodejs中间剂的长处和短处

一、什么是跨域?

交叉域是向服务器发送跨域请求的浏览器序列,绕过Ajax只能在同一来源使用的限制。

什么是同源策略?

同源技术是一项合同。Netscape于1995年揭开观众的栏目。这是浏览器的主要和最基本的安全功能。如果没有同侪办法,结构波动者容易受到XSS、CSFR和其他攻击。“相同性”一词是指“协议+域名+端口”是相同的。两个独立的域名甚至可以指同一IP地址。也非同源。

同一技术限于下列行为:

  • Cookie、 本地系统、 索引DB 不存在 。
  • 没有无障碍的国防部或联署材料。
  • 无法发送AJAX请求书。

二、常见的跨域场景

在这里插入图片描述

三. 解决共同的交叉领域关切问题

1.JSONP跨域

(一)原理

jsonp理论是利用它。

(二)示例

前端代码:

1)原生JS实现

后端代码:

(三) JSONP的利弊

效益:它简单、兼容,可用于克服共同浏览器的跨区域数据存取问题。
缺点包括:只支持 " 获得 " 办法、限制和不安全。

2. CORS是跨部资源分享。

(一) CORS究竟是什么?

CORS, 或“ 跨域资源共享” 是 W3C 标准, 允许浏览器将 XMLHttp 请求查询提交到跨域服务器, 绕过 AJAX 只能用于同一源码的限制 。
它通知客户端, 如果浏览器支持 CORS, XMLHtp 请求将允许开始跨域请求, 向服务器提供特定的页眉[ Access- control- Allow- Origan] 。

(二) 基本和复杂的要求

如果以下两项要求同时得到满足,这是一项直截了当的要求。

  1. 使用下列方法之一:
  • head
  • get
  • post
  1. 请求的Heder是
  • Accept
  • Accept-Language
  • Content-Language
  • Content-Type:
    只有三种可能的值:应用程序/x-ww-form-urlencodd、多部分/form-data和文本/plan。

未能同时满足上述两项要求并不是简单的要求。 浏览者对这两种要求加以区分。

简单请求

浏览器直接发送 CORS 请求, 以获取基本请求。 发件人字段会被添加到头条消息中 。

上面页眉信息中的源字段用于识别请求来源(协议+域名+端口)。服务器决定是否允许基于此值的请求。

CORS需要的反应信头字段,从Access-Control-Allow-Origin开始。

1. 选择进入-控制-无限制组织

此值是请求时的原始字段值, 或表示接受任何域名请求的 a* 。

(2) 可选择的获取控制- allow-Credicials(控制- allow-Credicials)

其值是一个布尔值, 显示是否允许发送 cookie 。 默认情况下, Cookie 不包含在 CORS 请求中。 当设定为 True 时, Cookie 可以包含在请求中, 并随同发送到服务器 。
此值只能设定为 True, 如果服务器不通过浏览器提供 Cookie, 则字段应该删除 。

3) 任选的存取控制 - - - - - - - - - - - - - - - - 专家负责人

CORS请求时,XMLTtprequest 对象上的 gattResponse Header () 函数只能获取六个基本字段: 缓存控制、 内容语言、 内容类型、 过期、 最后修改 和 Praggma 。如果你想接收其他字段,请到这里。必须具体说明访问控制 - 开发 - 希拉德 。上面的例子指定,Foobar 字段的值由 GetResponse Chainer (“Foobar ”) 返回 。

非简单请求

非简单请求是具有某些服务器需求的请求。类似于要求PUT或DELETE。相反,Fontent-Type 字段类型是应用程序/json。这不是一个简单的 CORS 请求 。会在正式通信之前,包含 HTTP 查询请求 。它被称为"预检"请求

预检请求

请求书由备选方法预先筛选,表明请求书用于询问,请求信头信息的关键领域是来源,表明请求来自何方,除了Origan外, " 预先筛选 " 请求还包括两个额外领域。

(1) 选择获取-控制-请求-方法

列出用于向浏览器(如PUTs)发送 CORS 请求的 HTTP 方法 。

2) 可选的存取控制请求 -- -- 请求 -- -- 希伯来人

此字段是一个以逗号分隔的字符串, 显示浏览器 CORS 想要额外的信头字段, 如 X- Custom- checker 。

预检请求的回应

在收到服务器提出的预先筛选请求后,小组在视察了原产地、存取控制-请求-方法以及存取-存取控制-请求-目的字段后,得以了解更多有关情况。确认允许跨源请求,就可以做出回应。

HTTP反应中与CORS有关的其他领域,除了重要的出入控制-Allow-Oligin外,还有:
(1) 选定的存取-控制- allow-方法

其值是一个以逗号分隔的字符串, 给出所有由服务器支持的跨域请求的方法。 请注意, 返回是所有支持的方法, 而不仅仅是浏览器要求的方法 。

2)Access-Control-Allow-Headers

如果浏览器要求增加访问-控制-请求-希德斯数据,那么利用因特网作为建立更好环境的工具是可行的。需要获取-控制-控制-Allow-headers字段。也是带有逗号的绳子显示服务器的所有头信息字段。不限于浏览器所需的“预检”字段。

3) 可选择的存取-控制- allow-Credits

当提出基本要求时,字段具有相同的含义。

4) 任选: 进入控制-Max-Age
此预屏请求的有效期以秒计 。

(三)示例

前端代码:

在这里插入图片描述

后端代码:

(四) CORS的利弊

CRS支持所有形式的HTTP请求,是跨域HTTP请求的主要解决办法。
缺点:浏览器需求高,与旧浏览器不兼容

3.Cross-domain Nodejs 中件剂

(一)原理

在这里插入图片描述

同一性战略是浏览器必须遵循的规范,尽管服务器向服务器提出的要求不需要同性战略。

  • 客户请求为代理服务器所接受。
  • 请求由代理服务器发送到服务器 。
  • 服务器响应数据由代理服务器接收 。
  • 回复将通过代理服务器发送给客户端 。

(二)示例

用节点+快递+ http-proxy-middleware, 建立一个代理服务器 。

前端代码:

中间件服务器代码:

(三) nodejs中间剂的长处和短处

效益包括减少网络负担、节省带宽和自动数据分类。
缺点:易受攻击

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息