fetch发送2次请求的原因分析
划重点:如果被别人问到,其实这是在迷惑你,发送两次请求的情况确实存在,但这与你所使用的是不是http协议,所采用的是不是fetch真的没有任何关系!
我们所说的发送2次请求,其实就是在跨域请求时,编写了带预检请求的代码导致多了一次名为OPTIONS的尝试请求
发送2次请求需要满足以下2个条件:
- 必须要在跨域的情况下
- 除GET、HEAD和POST(content-type: application/x-www-form-urlencoded, multipart/form-data, text/plain Content-Type)以外的跨域请求(我们可以称为预检(Preflighted)的跨域请求)。
总结:
之所以会发送2次请求,那是因为我们使用了带预检(Preflighted)的跨域请求。该请求会在发送真实的请求之前发送一个类型为OPTIONS的预检请求。预检请求会检测服务器是否支持我们的真实请求所需要的跨域资源,唯有资源满足条件才会发送真实的请求。比如我们在请求头部增加了authorization项,那么在服务器响应头中需要放入Access-Control-Allow-Headers,并且其值中必须要包含authorization,否则OPTIONS预检会失败,从而导致不会发送真实的请求
fetch发送2次请求的原因分析相关推荐
- http协议修改js或html,web前端面试题对答篇:HTTP fetch发送2次请求的原因?
web前端面试题对答篇:HTTP fetch发送2次请求的原因? 2020-08-31 04:36:44 289 编程开发 HTTP fetch发送2次请求的原因?面对这道出现频率较高的面试题,我想说 ...
- winform接收http请求_web前端面试题对答篇:HTTP fetch发送2次请求的原因?
HTTP fetch发送2次请求的原因?面对这道出现频率较高的面试题,我想说的是:发送两次请求的情况确实存在,但这与你所使用的是不是http协议,所采用的是不是fetch真的没有一毛钱关系! 接下来, ...
- python requests form data_python使用requests发送multipart/form-data请求数据
def client_post_mutipart_formdata_requests(request_url,requestdict): #功能说明:发送以多部分表单数据格式(它要求post的消息体分 ...
- 获取portal服务器信息超时,Portal认证提示“向设备发送请求超时”问题分析
Portal认证提示"向设备发送请求超时"问题分析 一. 问题描述: 某局点反馈:Portal网页认证输入用户名密码点击,页面提示"向设备发送请求超时". 二. ...
- fetch 发送 AJAX请求
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- Fetch发送网络请求
1. 文档 https://github.github.io/fetch/ https://segmentfault.com/a/1190000003810652 2. 特点 fetch: 原生函数, ...
- 1. HbuliderX-移动端APP开发-前端开发ajax请求失败或错误-常见问题-原因分析-处理
文章目录 一. 常见问题原因分析处理 1. 请求地址URL不对 2. 防火墙拦截 3. 网络环境不匹配 4. 服务器端口问题 一. 常见问题原因分析处理 1. 请求地址URL不对 检查 [IP+端口+ ...
- 【AJAX 笔记】AJAX 基本、HTTP 基本、原生 AJAX 的使用,jQuery / Axios / fetch 发送请求、跨域(JSONP/CORS)
文章目录 1 Ajax 概述 1.1 AJAX 简介 1.2 XML 简介 1.3 AJAX 的特点 1.3.1 AJAX 的优点 1.3.2 AJAX 的缺点 1.4 AJAX 属性和方法 2. H ...
- DB2中常见sqlCode原因分析
DB2中常见sqlCode原因分析 000 | 00000 | SQL语句成功完成 01xxx | SQL语句成功完成,但是有警告 +012 | 01545 | 未限定的列名被解释为一个有相互关系的引 ...
最新文章
- 如何让UTF-8能对文档XML编辑
- linux下使用ffmpeg命令录屏桌面
- 全球首个无人驾驶政策颁布,各大巨头并不完全买账
- VC++ CryptoAPI最基本编程
- springboot+mybatis测试时遇到java.lang.NullPointerException
- HDU4099(斐波那契数列与字典树)
- 全球计算机科学硕士申请,2019爱尔兰留学都柏林大学计算机科学硕士申请
- 同态加法_同态—当旧趋势突然变酷时
- 好久不来这里写东西了.
- mysql导出表_mysql导出表的3种方式
- centos7 修改为任意网卡名_centos7首次启动需要配置的内容
- 使用HttpClient发送WebService Security(WSS)请求
- iOS绘图框架CoreGraphics分析
- python识别鼠标在excel中选中的区域_[Excel技巧] 提高你工作效率的9个Excel技巧,职场新人必备...
- PreparedStatement 防止 SQL 注入原理
- java 打印 xps_使用Java 将PPT转换为PDF、XPS等格式
- 本地计算机添加网络打印机共享,如何连接共享打印机?一步一步教你设置和连接局域网共享打印机...
- matlab中三维数组,维数转换
- OpenPose+VS2015+Windows+CUDA8+cuDNN5.1 官方配置教程
- Add Python Interpreter 报错 Error code:2. XX can‘t open file XX [Errno 2] No such file or directory
热门文章
- 图解组织效能及人均效能指标大全和计算方法
- Oracle中对查询条件进行按拼音/笔画/部首order by排序
- 怎样查看mysql的账户和密码_怎么查到mysql的账号密码是什么?
- 深圳的中学计算机课学什么时候,AP 计算机 专业高效 深圳中学学生如何说
- 帮我写一个风光互补发电系统功率优化分配程序
- 2021-10-28 SDR模块RSP1收听并显示ADS-B 航班信息
- rabbitMQ pika demo
- 巨蟹座最彰显个性的纹身 白羊座男生玩弄感情的原因
- excel两个表格数据对比_快速对比excel表格两个sheet中不同的数据,极大的降低重复工作量...
- 修改Typora编辑器的字体