http预请求options
在有很多情况下,当我们在js里面调用一次ajax请求时,在浏览器那边却会查询到两次请求,第一次的Request Method参数是OPTIONS,还有一次就是我们真正的请求,比如get或是post请求方式
查阅相关的资料之后发现,这是浏览器对复杂跨域请求的一种处理方式,在真正发送请求之前,会先进行一次预请求,就是我们刚刚说到的参数为OPTIONS的第一次请求,他的作用是用于试探性的服务器响应是否正确,即是否能接受真正的请求,如果在options请求之后获取到的响应是拒绝性质的,例如500等http状态,那么它就会停止第二次的真正请求的访问
大致说明一下,有三种方式会导致这种现象:
1:请求的方法不是GET/HEAD/POST
2:POST请求的Content-Type并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain
3:请求设置了自定义的header字段
比如我的我的Content-Type设置为“application/json;charset=utf-8”并且自定义了header选项导致了这种情况。
版权声明:本文为CSDN博主「蓝-锋」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kahhy/article/details/81563063
转载于:https://www.cnblogs.com/mzdljgz/p/11412429.html
http预请求options相关推荐
- H5请求服务端发送POST请求之预请求-OPTIONS
1.问题场景 1.1 H5端请求服务端接口时,需要在header中携带服务端用jwt规范生成的token 1.2 在接收到H5的请求时Filter需要从请求头中拿出token做校验,检查当前的toke ...
- get和post请求区别,options预请求
区别 请求报文不一样:get请求请求体中没有请求数据,post请求的请求体中有请求数据. 传输方式:get参数通过url传输,post参数通过请求体传输. get相对post不安全,因为参数都是直接暴 ...
- JAVA解决OPTIONS请求问题:跨域时ajax发送两次请求,其中options预请求参数为null及其解决方案
转载请注明出处 原文链接:https://blog.csdn.net/qq_39309348/article/details/103267908 在正式跨域的请求前,浏览器会根据需要,发起一个&quo ...
- HTTP 之 options预请求
目录 一.HTTP一共有八种常见请求方法 二.什么是预请求 三.为什么需要 四.什么情况下发生(以下都属于复杂请求) 五.为什么需要设置成contentType:"application/j ...
- CORS跨域限制以及预请求验证(C++ Qt框架实现)
目录 理论 演示及代码 理论 跨域默认情况下允许方法:GET.HEAD.POST 默认情况下允许的Content-Type:text/plain.multipart/form-data.applica ...
- Postman + Pre-resuestScript:预请求脚本发送POST请求
使用postman调试业务接口,往往都需要使用 Token Token往往会过期,这时候就需要手动调用登录接口获取最新的Token postman的预请求脚本(Pre-resuestScript)就可 ...
- 关于浏览器预检(OPTIONS)请求
浏览器在什么情况下会发起options预检请求? 在非简单请求且跨域的情况下,浏览器会发起options预检请求. 关于简单请求和复杂请求: 1 简单请求 简单请求需满足以下两个条件 请求方法是以下三 ...
- php避免options请求,OPTIONS请求 已阻止跨源请求:CORS 头缺少 'Access-Control-Allow-Origin'...
以node koa为例 app.use(function *(){ let {method, url, header} = this.request; this.set('Access-Control ...
- HTTP中的options请求详解
跨域开发过程中,遇到options(预请求)请求,服务端接收后报错,需要后台对options请求过滤 浏览器请求中出现options请求原因:浏览器对跨域请求中出现简单跨域请求和复杂跨域请求的处理 X ...
最新文章
- 【项目管理】敏捷小品:Rupert 工业公司 项目:~Alpha~
- 解析PHP跳出循环的方法以及continue、break、exit的区别介绍
- 单元测试框架之Robolectric踩坑
- hbase 特性与api
- redis映射的概念_Redis存储总是心里没底?你大概漏了这些数据结构原理
- 最大堆和最小堆和平衡二叉树_最小堆二叉树
- python哪些是可变对象_python 中的可变对象与不可变对象
- JavaScript输出数组中有几个字符串中包含“a”或“A”
- vc++2010注册表修改
- Ubuntu18搭建SVN可视化工具if.svnadmin
- 利用lnmp一键安装的php环境忘记mysql,root用户密码解决方法
- 夏普计算机各键功能,夏普打印机按键说明
- 将英汉词典数据库放入MySQL数据库中,并将数据库中“以A开头的单词”显示在JSP网页上
- 我整理的ubuntu开源软件列表,适合于极客
- mmap()、munmap()的用法、例子
- Python多线程下调用win32com包相关问题:pywintypes.com_error: (-2147221008, ‘尚未调用 CoInitialize。‘, None, None)问题处理
- [译]Kotlin中是应该使用序列(Sequences)还是集合(Lists)?
- 游戏性的根本——浅谈游戏关卡设计
- 期待2021 期待全新的自己
- 查询被占用的端口和关闭端口
热门文章
- python3连接mysql数据库_python3.4连接mysql数据库
- QT:常用函数详解--常用操作记录(个人笔记)
- Hadoop的学习前奏(一)——在Linux上安装与配置Hadoop
- [转]Linux C语言头文件搜索路径
- xxx cannot be resolved to a type 问题的几种常见原因
- guido正式发布python年份_Python 基础学习笔记.docx
- 计算机学院 储昭坤,我校在“展航杯”安徽省大学生信息安全作品赛荣获佳绩...
- 阿里巴巴的 Kubernetes 应用管理实践经验与教训
- java进出栈_JVM函数调用:Java出入栈
- c语言可移植性较差吗,c陷阱与缺陷--可移植性缺陷