浏览器不允许用户手动设置敏感的Http header包括但不限于cookie、host、referer

为了安全,跨域XHR对象有一些限制:

  • 不能使用 setRequestHeader() 设置自定义头部
  • 不能发送和接收 cookie
  • 调用 getAllResponseHeaders() 方法总会返回空字符串

参考:
1.《JavaScript高级程序设计(第3版)》 - 21.4.2 其他浏览器对 CORS 的实现
<img src="https://pic1.zhimg.com/50/34e9574627997f5453d2379f2b3a9471_hd.jpg" data-rawwidth="847" data-rawheight="550" class="origin_image zh-lightbox-thumb" width="847" data-original="https://pic1.zhimg.com/34e9574627997f5453d2379f2b3a9471_r.jpg">

作者:April
链接:https://www.zhihu.com/question/36723766/answer/193913511
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这种问题还是要看标准的XMLHttpRequet相关接口的定义,设置request header头的时候,有些name是被禁止的:

<img src="https://pic1.zhimg.com/50/v2-c01b98328ef7ae95b8ad00b110ff9e2c_hd.jpg" data-rawwidth="754" data-rawheight="319" class="origin_image zh-lightbox-thumb" width="754" data-original="https://pic1.zhimg.com/v2-c01b98328ef7ae95b8ad00b110ff9e2c_r.jpg">

文档已经列出了这些被禁止的name:

<img src="https://pic3.zhimg.com/50/v2-5b199e5f233e39293ad2d8291340da84_hd.jpg" data-rawwidth="698" data-rawheight="410" class="origin_image zh-lightbox-thumb" width="698" data-original="https://pic3.zhimg.com/v2-5b199e5f233e39293ad2d8291340da84_r.jpg">

所以,碰到这种问题最快捷的方法是直接看官方文档。

from:https://www.zhihu.com/question/36723766

【转】ajax发送请求时候为什么会报拒绝设置不安全的header的更多相关文章

  1. ajax发送请求跨域 - uri java代理

    问题:ajax发送请求出现cors跨域 解决办法:可以通过java代理的方式,后台发送请求 1.get请求 public void proxyGet(String url) { try { URL r ...

  2. Ajax发送请求等待时弹出模态框等待提示

    主要的代码分为两块,一个是CSS定义模态框,另一个是在Ajax中弹出模态框. 查看菜鸟教程中的模态框教程demo,http://www.runoob.com/try/try.php?filename= ...

  3. Ajax - 发送请求原理

    1,什么是ajax? Asynchronous JavaScript and XML(当然现在xml已经由json代替): 主要是用于前后台的交互(表单提交已经被废弃): 使用场景:前台获取数据.表单 ...

  4. ajax对象。同步与异步及ajax发送请求

    ajax对象的属性.方法 属性 readyState: Ajax状态码 * 0:表示对象已建立,但未初始化,只是 new 成功获取了对象,但是未调用open方法 1:表示对象已初始化,但未发送,调用了 ...

  5. Django——Ajax发送请求验证用户名是否被注册

    场景: 用户注册的时候,输入用户名之后,Ajax发送请求到后端,后端验证该用户名是否已经被注册,然后返回到注册页面提示用户. 1.模型: from django.db import models cl ...

  6. ajax发送请求

    首先创建XMLHttpRequest对象,利用此对象发送请求 主页面 <!doctype html> <html lang="en"> <head&g ...

  7. 原生Ajax发送请求

    ajax  get&post 1.使用get发送请求,会有请求缓存 1)什么叫请求缓存,请求信息相同浏览器不会再向服务器发送请求,导致访问服务器失败. 2)解决:将随机数添加到请求路径后面参数 ...

  8. angularjs --- ngResource 类似于 ajax发送请求。

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  9. Ajax发送请求的四个步骤

    1.创建XMLHttpRequest let xhr=new XMLHttpRequest; 2.连接服务器 xhr.open("get","goods.json&quo ...

随机推荐

  1. python 实现微信自动回复(自动聊天)

    原文地址(本人):https://blog.csdn.net/a5878989/article/details/54974249 介绍 微信自动回复其实主要就是登录,接收消息,回复消息三个功能,微信没 ...

  2. 课程作业——Python基础之使用turtle库画出红旗

    代码如下: import turtle # 设置画笔和背景颜色 turtle.color('yellow') turtle.bgcolor('red') # 通过偏移量和尺寸大小画星星 def dra ...

  3. PS把图片P到老树干上,变成老树成精!

    1,两张图片: 2,把人像图片拉到另一张图片上,Ctrl+T适当缩放,放到树干合适的地方. 3,人像--Ctrl+Shift+U 去色---复制树图片(背景)放第一张---正片叠底. 4,选中两张图片 ...

  4. angular ng-file-upload

    传送门:https://github.com/danialfarid/ng-file-upload#install <script src="angular(.min).js" ...

  5. js内置对象-Object

    1)Object构造函数的方法 返回指定对象的原型对象 Object.getPrototypeOf(mymap); /*{featureStyle: {…}, selfLayersCount: nul ...

  6. SAP MM 按采购订单查询付款信息的报表?

    SAP MM 按采购订单查询付款信息的报表? 上午给P3项目采购部门用户做了一个采购相关的报表的培训.培训过程中,客户的采购部门经理提出了一个问题:有没有报表能查询到各个采购订单的付款情况,显示采购订 ...

  7. AWS专线服务总结和疑问

    1.AWS专线服务的入口, 从介绍页上可以看到,有如下功能: (1)专线可以连接AWS云主机和传统的数据中心或者分支机构. (2)专线可以连接AWS云主机和托管区的主机. 连接要素: (1)需要使用V ...

  8. Conccrent中 Unsafe类原理 以及 原子类AutomicXX的原理以及对Unsafe类的使用

    Unsafe类的介绍 Java中基于操作系统级别的原子操作类sun.misc.Unsafe,它是Java中对大多数锁机制实现的最基础类.请注意,JDK 1.8和之前JDK版本的中sun.misc.Un ...

  9. 学习用Node.js和Elasticsearch构建搜索引擎(5):mac本机部署canal

    1.背景介绍 最近做的一个项目需要快速检索数据,经过商讨后采用了ElasticSearch作为快速检索数据引擎,但是数据如何同步到ES中是个问题,我们最开始计划了定时任务.mysql trigger等 ...

  10. oracle11在docker环境下的运行

    目的 Ø 在测试的环境下oracle数据库不存在或访问不方便时,可以将这个环境快速恢复出来 Ø 开发时方便测试之用 可以在任何包含docker服务的机器上运行,具体的docker的安装可以参考如下: ...