gpt4 book ai didi

c# - 将 BrowserRequestMode 设置为 NoCors 时未发送 HttpClient 授权 header

转载 作者:行者123 更新时间:2023-12-05 04:54:27 25 4
gpt4 key购买 nike

我正在尝试发送这样的请求:

var req = new HttpRequestMessage(HttpMethod.Get, requestUri);
req.SetBrowserRequestMode(BrowserRequestMode.NoCors);
req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
var resp = await httpClient.SendAsync(req, cancellationToken);

我看到我设置的授权 header 没有发送。但是,如果我删除第二行,它将发送。我需要设置第二行。

为什么在将 BrowserRequestMode 设置为 NoCors 时不应发送授权?

最佳答案

来自 msdn 网络文档:

no-cors — Prevents the method from being anything other than HEAD, GETor POST, and the headers from being anything other than simpleheaders.

简单 header 就是我们所说的 CORS 安全列表请求 header ,例如:

  • 接受
  • 接受语言
  • 内容语言
  • 内容类型

未发送授权 header ,因为在您的第二行中您通过启用 cors 来阻止发送该 header 。我不知道您是否出于某种目的这样做,但我认为这是与 cors 相关的事情,您的代码是正确的。那里有很多解释 CORS 的答案。

关于c# - 将 BrowserRequestMode 设置为 NoCors 时未发送 HttpClient 授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65761996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com