xhr.js:196 Refused to set unsafe header "Cookie"
时间: 2023-12-31 13:05:54 浏览: 31
这个错误是由于浏览器的安全机制所导致的,浏览器不允许设置不安全的请求头(如Cookie)。通常情况下,AJAX请求是不能够在跨域请求中携带Cookie的,否则会被浏览器拒绝。
解决这个问题的方法是,将请求头中的Cookie删除,或者使用其他方式传递身份验证信息,例如使用Token等方式进行身份验证,并将Token放在请求头中进行传递。
如果您需要在跨域请求中携带Cookie,可以在服务器端设置CORS(跨域资源共享)来允许跨域请求。同时也需要注意,设置CORS会增加服务器的安全风险,所以需要谨慎使用。
相关问题
xhr.js:196 Refused to set unsafe header "Origin"
这个错误通常出现在使用 XMLHttpRequest 对象时手动设置了 `Origin` 请求头,并且 `Origin` 的值为非法值,例如 `null` 或 `undefined`。
在浏览器的安全策略中,有些请求头是被允许的,有些则是被禁止的。其中,`Origin` 请求头是被浏览器禁止使用的“不安全”请求头之一,因此,如果手动设置了 `Origin` 请求头,并且设置的值为非法值,浏览器就会抛出 `Refused to set unsafe header "Origin"` 的错误。
如果确实需要手动设置 `Origin` 请求头,可以通过以下两种方式避免这个错误:
1. 设置 `withCredentials` 属性为 `true`:
```
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.open('POST', 'https://www.example.com/api');
xhr.setRequestHeader('Origin', 'http://www.mywebsite.com');
xhr.send(formData);
```
在这个示例中,我们设置了 `withCredentials` 属性为 `true`,表示允许跨域请求发送 cookies 和认证信息。这样做的好处是,浏览器会自动添加一个合法的 `Origin` 请求头,避免了手动设置的问题。
2. 使用其他合法的请求头代替 `Origin` 请求头:
```
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://www.example.com/api');
xhr.setRequestHeader('X-My-Origin', 'http://www.mywebsite.com');
xhr.send(formData);
```
在这个示例中,我们使用了自定义的 `X-My-Origin` 请求头代替了 `Origin` 请求头。这样做的好处是,不会触发浏览器的安全策略,避免了 `Refused to set unsafe header "Origin"` 的错误。
xhr.js:108 Refused to set unsafe header "cookie"
根据引用\[1\],在发送给后台的后续请求中,可以在请求头中添加header信息,其中包括"content-type"和"Authorization"字段。这样可以指定请求的内容类型为"application/x-www-form-urlencoded",并提供会话ID作为授权信息。
根据引用\[2\],W3C规定了一些不安全的字符,当请求头中包含这些字符时,请求将被终止。其中包括"Cookie"、"Cookie2"等字段。因此,在你的问题中,当尝试设置"cookie"字段时,浏览器会拒绝设置这个不安全的请求头。这是为了保护用户的隐私和安全。
所以,当你在使用XMLHttpRequest发送请求时,如果尝试设置"cookie"字段,你会收到拒绝设置不安全请求头的错误信息。
#### 引用[.reference_title]
- *1* [Refused to set unsafe header “cookie](https://blog.csdn.net/amemd/article/details/128549104)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [uni-app 发送请求时遇到报错 Refused to set unsafe header “Cookie](https://blog.csdn.net/Dark_programmer/article/details/122839339)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]