IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 跨域问题与CORS跨域资源共享 -> 正文阅读

[网络协议]跨域问题与CORS跨域资源共享


什么是跨域?为什么有问题?

什么是跨域
跨域是指浏览器从一个域名的网页去请求另一个域名的资源时, 域名、端口、协议 三者中有一个不同。

为什么会出问题
出于安全考虑(防止坏人轻易利用浏览器DOM获取隐私内容),浏览器有一策略,名曰: 同源策略
同源策略详解: https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy

解决方案

CORS跨域资源共享

CORS跨域资源共享是什么
CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。它是由一系列HTTP响应头组成的,这些响应头决定浏览器是否阻止前端JS代码跨域获取资源。

缺陷
在浏览器中具有兼容性,只有支持XMLHttpRequest Level2的浏览器,才能正常访问开启了CORS的服务端接口(如IE10+、Chrome4+、FireFox3.5+)。

CORS三个响应头
Access-Control-Allow-Origin: | *
Access-Control-Allow-Methods:GET, POST, HEAD(默认这三个方法)
Access-Control-Allow-Headers:Accept, Accept-Language, Content-Language, DPR, Downlink, Save-Data, Viewport-Width, Width, Content-Type(text/plain、multipart/form-data、application/x-www-form-urlencoded三者之一)(仅支持这9个请求头)

CORS简单请求和预检请求

简单请求:

  • 请求方法是以下三种方法之一:HEAD、GET、POST
  • HTTP 的头信息不超出以下几种字段:
    Accept
    Accept-Language
    Content-Language
    Last-Event-ID
    Content-Type(application/x-www-form-urlencoded、- - multipart/form-data、text/plain)

预检请求

  • 非简单请求
  • 特点:会发生两次请求。在浏览器和服务器正式通信前,浏览器会先发送OPTION请求进行预检,用来确定服务器是否允许此次请求

JSONP

利用HTML标签中script、img这样的获取资源的标签没有跨域限制这一特点。
JSONP利用script标签的src属性来实现跨域。

空iframe加form

代理(Nginx)

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:25:55  更:2022-04-06 16:26:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:35:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码