Javascript 拒绝设置不安全的标题“;曲奇;浏览器中出错,但请求成功

Javascript 拒绝设置不安全的标题“;曲奇;浏览器中出错,但请求成功,javascript,angularjs,Javascript,Angularjs,我用的是Angularjs。当我使用xhr.setRequestHeader()设置Cookie标头时,我在Chrome上遇到以下错误: Refused to set unsafe header "Cookie" 但是,Cookie包含在请求中并成功发送到服务器。我似乎已正确配置所有内容,以允许服务器和客户端上的Cookie头: 对于服务器,我有以下几点: Header add Access-Control-Allow-Credentials "true" 对于客户端,我指定以下内容: wi

我用的是Angularjs。当我使用
xhr.setRequestHeader()
设置
Cookie
标头时,我在Chrome上遇到以下错误:

Refused to set unsafe header "Cookie"
但是,
Cookie
包含在请求中并成功发送到服务器。我似乎已正确配置所有内容,以允许服务器和客户端上的
Cookie
头:

对于服务器,我有以下几点:

Header add Access-Control-Allow-Credentials "true"
对于客户端,我指定以下内容:

withCredentials
为什么会出现此错误?

此“模板”适合我
打开开发人员工具并尝试运行
$.ajax
setRequestHeader
放在
beforeSend
方法中




摘自,和。

如果你把饼干送过来,我想那就足够了。具有“跨域:正确, 证书:正确
解决了我遇到的“拒绝设置不安全的标题”Cookie“的问题。尽管警报消息仍然存在,但我已将cookie发送过来并返回正确的响应。

您从Chrome中获得该错误,因为根据,setRequestHeader方法不应使用

根据规范:

这些都是禁止的,因此用户代理仍然完全控制它们


相反,对于Angular 1.x,通过使用
$cookies
,它将包含在后续的
xhr
请求中。

我猜浏览器会自行处理cookie头。嘿,谢谢,你这是什么意思?:)我知道Chrome不允许你设置内容长度。这是为了你。所以我猜饼干头可能也是一样的。@Mouser,我猜就是这样!从代码中删除
setRequestHeader()
后,
Cookie
头仍会传递到服务器。谢谢祝你好运@马克西姆斯:你是怎么解决这个问题的?你能发布你的代码吗?是的,一切正常,只是信息让人恼火
<?php
  header('Content-Type: text/html; charset=UTF-8');
  header('Access-Control-Allow-Origin: *');
  header('Access-Control-Allow-Headers: *');
  header('Access-Control-Expose-Headers: *');
  header('Access-Control-Allow-Credentials: true');
?><!doctype html>
<html lang="en-US">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  </head>
  <body>
    <script defer="defer" src="https://code.jquery.com/jquery-git.js"></script>
  </body>
</html>