http 一次跨域请求出现 OPTIONS 请求的问题及解决方法

2023-11-08

在正式跨域的请求前,浏览器会根据需要,发起一个“PreFlight”(也就是Option请求),用来让服务端返回允许的方法(如get、post),被跨域访问的Origin(来源,或者域),还有是否需要Credentials(认证信息) 三种场景:

如果跨域的请求是Simple Request(简单请求 ),则不会触发“PreFlight”。Mozilla对于简单请求的要求是: 以下三项必须都成立:

  1. 只能是Get、Head、Post方法

  2. 除了浏览器自己在Http头上加的信息(如Connection、User-Agent),开发者只能加这几个:Accept、Accept-Language、Content-Type、。。。。

  3. Content-Type只能取这几个值: application/x-www-form-urlencoded multipart/form-data text/plain

XHR对象对于HTTP跨域请求有三种:简单请求、Preflighted 请求、Preflighted 认证请求。简单请求不需要发送OPTIONS嗅探请求,但只能按发送简单的GET、HEAD或POST请求,且不能自定义HTTP Headers。Preflighted 请求和认证请求,XHR会首先发送一个OPTIONS嗅探请求,然后XHR会根据OPTIONS请求返回的Access-Control-*等头信息判断是否有对指定站点的访问权限,并最终决定是否发送实际请求信息。 那么我的get请求呢? 原来,产生 OPTIOINS 请求的原因是:自定义 Headers 头信息导致的。 浏览器会去向 Server 端发送一个 OPTIONS 请求,看 Server 返回的 "Access-Control-Allow-Headers" 是否有自定义的 header 字段。因为我之前没有返回自定义的字段,所以,默认是不允许的,造成了客户端没办法拿到数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

http 一次跨域请求出现 OPTIONS 请求的问题及解决方法 的相关文章

随机推荐

  • Ubuntu装系统后重启卡死解决办法(超详细)

    笔者为了装这个Ubuntu可走了不少弯路 想必当你看到我这篇博客时你一定遇到了如下诸多问题的诸多个 笔者全部遇到了 1 Ubuntu装都装不了 第一步加载lougou下面有几个点 红了几个就停下了 从此一直如此 迫不得已强制关机 2 惊险度
  • 你要允许来自未知发布者的此应用对你的设备进行更改吗_物联网改变移动应用开发的4种方式...

    来源 物联之家网 iothome com 转载请注明来源 物联网改变了移动应用程序的开发格局 那么 为物联网开发移动应用程序有何不同 物联网与移动应用程序开发齐头并进 物联网改变了人类与机器的互动方式 甚至改变了机器之间的互动方式 而移动应
  • 【微分方程】微分算子法求微分方程特解

    文章目录 微分算子法 D 求特解 概述 f x f x f x 为
  • MMDetection自定义双主干Transformer模型(一)

    目录 1 添加自定义的主干网络 2 导入写好的主干网络 3 写配置文件来进行实验 基于自己的毕设想法 今天开始研究如何使用MMDetection构建自己的模型 今天的想法是构建如下的双主干网络 主干网络采用Swin Transformer
  • SQL注入类型已经一些小技巧

    目录 类型 1 联合注入 2 报错注入 2 1 floor 2 2 updatexml 2 3 extractvalue 3 bool注入 4 sleep注入 时间盲注 注入的一些小技巧 information schema过滤与无列名注入
  • 【Qt 6.2 参考手册】QT6.2所有模块

    Qt 6 2 所有模块 Qt 6 2 3 参考文档 内容 Qt基础模块 Qt扩展模块 接下来去哪里 所有模块 Qt基础模块 Qt基础模块在所有平台上定义了Qt的基础 它们可在所有受支持的开发平台和经过测试的目标平台上使用 除了测试模块将保持
  • Linux(centOS7)常用命令

    linux常用命令 监控linux系统情况 查看进程 查看占用的端口 服务状态 修改ip 临时修改ip 永久修改ip 查找文件 权限 包 安装图形界面 查看文件 防火墙 文件编辑 脚本 系统 scp传输 系统用户 修改文件sed i wc命
  • PHP问题:Deprecated: Function split() is deprecated in解决方法

    今天在测试php网站程序的时候 用 分割数组的时候突然出现Deprecated Function split is deprecated in 的错误提示 意思就是 函数方法split 已经被弃用了 然后查了下php文档 原来是随着版本的更
  • zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板)

    一 环境配置 1 配置zabbix服务端 2 配置监控主机 监控项 监控模板 zabbix配置安装 this page is used to test the proper operation of 疯飙的蜗牛的博客 CSDN博客 二 触发
  • SRAMC spec

    SRAMC规范分析 AHB SRAMC这个项目是选取自SOC的一部分 通过AHB总线进行读写操作 实现了下面的功能 功能点 8个8x8k的设计 8 16 32位的读写 低功耗bank core选择 单周期读写 dft bist测试 模块 包
  • Docker 部署学习(三),构建redis服务,并启用密码认证(基于docker pull redis)

    参考 docker官方redis文档 1 有特殊版本需求的可以查看redis镜像tag版本 2 选择最新版 latest docker pull redis latest 3 启动容器并设置密码 docker run name redis
  • 活动预告丨易盾CTO朱浩齐将出席2018 AIIA大会,分享《人工智能在内容安全的应用实践》

    本文来自网易云社区 对于很多人来讲 仿佛昨天才燃起来的人工智能之火 转眼间烧遍了各个角落 如今我们的生活中 处处渗透着人工智能 10月16日 2018年 AIIA人工智能开发者大会在苏州举办 网易云易盾CTO朱浩齐将出席本次大会 AI安全分
  • springboot整合log4j

    1 log4j文件
  • Maven和Tycho

    点进来读这篇文章的朋友 我假定你已经知道maven的基本知识 也知道Eclipse 知道Eclipse是基于OSGi 初步了解Eclipse插件开发或者说OSGi模块化开发 如果对这些知识不了解 甚至完全没有听过 那请绕开本文 Maven简
  • mysql连接不上数据库

    1 打开 DOS 窗口 输入 mysql 连接命令时 提示报错 Cannot connect to MySQL server on localhost 10061 如下图 2 上面问题原因 可能是本地服务没开 需要开启本地服务 按 Win
  • 高考扎推报网络安全专业,非科班的你还在观望等机会流失吗?

    又是一年高考季 在等待成绩出来的这段时间 所有考生和家长都在积极地研究着专业报考这个大难题 尤其是理工科 选好一个专业是非常重要的 专业对于普通家庭的孩子来说就是你安身立命的根本 今年的就业形势让家长们都绷紧了神经 大家都对专业选择更加的慎
  • unity3d : unity Editor 已停止工作

    问题 安装unity后打开unity就会出现 unity Editor 已停止运行 原因 1 如果是ghost win7 系统 这个系统不稳定 可以重装 win7旗舰版试一试 2 看看你的系统是不是64位sp1 如果不是的话 请安装sp1后
  • ES的嵌套查询和嵌套聚合

    1 想要实现嵌套查询和嵌套聚合 首先需要在索引里面设置某个属性是嵌套类型 一般是List type nested 2 API的demo 嵌套查询 使用场景 需要根据list中的两个字段以and的关系进行查询 构造布尔查询 BoolQuery
  • 论文报告中如何优雅的粘贴代码(表格版)

    在经过前两天的课设摧残后 总结一个粘贴代码的小方法 这里用的是表格填充式 我觉得还算美观 如果你想代码像下面这样保持高亮的话 一共两个方法 第一个是去网站上做高亮代码 代码在线高亮工具 将高亮美化的代码一键粘贴到 Word 或 OneNot
  • http 一次跨域请求出现 OPTIONS 请求的问题及解决方法

    在正式跨域的请求前 浏览器会根据需要 发起一个 PreFlight 也就是Option请求 用来让服务端返回允许的方法 如get post 被跨域访问的Origin 来源 或者域 还有是否需要Credentials 认证信息 三种场景 如果