使用Fetch API读取响应标头

朱尔斯

我正在使用具有许可权的Google Chrome扩展程序,"*://*/*"并且试图将XMLHttpRequest切换到Fetch API

该扩展存储了用户输入的登录数据,该数据以前直接放入XHR的HTTP Auth的open()调用中,但在Fetch下不再可以直接用作参数。对于HTTP Basic Auth,规避此限制是微不足道的,因为您可以手动设置Authorization标头:

fetch(url, {
  headers: new Headers({ 'Authorization': 'Basic ' + btoa(login + ':' + pass) })
  } });

但是,HTTP Digest Auth需要更多的交互性。您需要读取服务器通过401响应发送给您的参数,以制作有效的授权令牌。我尝试WWW-Authenticate使用以下代码片段读取响应标头字段:

fetch(url).then(function(resp) {
  resp.headers.forEach(function(val, key) { console.log(key + ' -> ' + val); });
}

但是我得到的只是这个输出:

content-type -> text/html; charset=iso-8859-1

根据Chrome的开发人员工具,这本身是正确的,但是仍然缺少大约6个字段。如果我使用resp.headers.get("WWW-Authenticate")(或与此有关的任何其他字段),则只会得到null

有机会使用Fetch API进入这些其他字段吗?

拉吉尔·贾旺达(Rajbir Jawanda)

当您通过CORS使用Fetch API时,访问响应标头受到限制。由于此限制,您只能访问以下标准标头:

  • Cache-Control
  • Content-Language
  • Content-Type
  • Expires
  • Last-Modified
  • Pragma

在为Google Chrome扩展程序编写代码时,您正在使用CORS,因此无法访问所有标头。如果控制服务器,则可以在响应中返回自定义信息,body而不是headers

有关此限制的更多信息-https: //developers.google.com/web/updates/2015/03/introduction-to-fetch#response_types

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Microsoft图形API获取响应标头

来自分类Dev

如何使用CURLOPT_HEADERFUNCTION读取单个响应标头字段?

来自分类Dev

在从上游读取响应标头时,使用Nginx,Thin / Rails使上游超时

来自分类Dev

如何使用CURLOPT_HEADERFUNCTION读取单个响应标头字段?

来自分类Dev

Api网关304使用Last-Modified标头进行响应

来自分类Dev

无法使用空手道从REST API验证响应标头

来自分类Dev

如何使用 AWS API Gateway 中的请求标头进行响应

来自分类Dev

使用“ Range”标头时,无法从服务器获取Java的GZIPInputStream来读取服务器的“ gzip”响应

来自分类Dev

使用http响应标头的Flutter Cache JSON响应

来自分类Dev

如何使用 Fetch api 获取 CORS 请求中的标头字段

来自分类Dev

使用Perl的File :: Fetch获取http-response标头

来自分类Dev

使用 fetch 或 axios 发送身份验证标头

来自分类Dev

在JAX-RS中使用Location标头创建响应

来自分类Dev

使用Python请求模块获取HTTP响应标头

来自分类Dev

如何使用中间件向响应添加标头?

来自分类Dev

使用Last-Modified标头使已存储的响应无效

来自分类Dev

如何让Rails根据标头使用json进行响应

来自分类Dev

使用Strongloop框架的自定义响应标头

来自分类Dev

使用sails.js修改响应标头以实现HSTS

来自分类Dev

在Swift中使用Alamofire时如何获取响应标头?

来自分类Dev

使用Http标头与Spray-Client解组响应

来自分类Dev

使用Spray映射所有响应的标头

来自分类Dev

使用HttpUrlConnection无法获得正确的标头响应代码

来自分类Dev

使用HttpClient响应时无法获取“ location”标头

来自分类Dev

在Flutter中使用Dio时忽略响应标头

来自分类Dev

如何使用Apache从HTTP响应中删除Server:标头?

来自分类Dev

使用Http标头与Spray-Client解组响应

来自分类Dev

如何使用PromiseKit处理仅标头响应?

来自分类Dev

使用Spray映射所有响应的标头

Related 相关文章

  1. 1

    如何使用Microsoft图形API获取响应标头

  2. 2

    如何使用CURLOPT_HEADERFUNCTION读取单个响应标头字段?

  3. 3

    在从上游读取响应标头时,使用Nginx,Thin / Rails使上游超时

  4. 4

    如何使用CURLOPT_HEADERFUNCTION读取单个响应标头字段?

  5. 5

    Api网关304使用Last-Modified标头进行响应

  6. 6

    无法使用空手道从REST API验证响应标头

  7. 7

    如何使用 AWS API Gateway 中的请求标头进行响应

  8. 8

    使用“ Range”标头时,无法从服务器获取Java的GZIPInputStream来读取服务器的“ gzip”响应

  9. 9

    使用http响应标头的Flutter Cache JSON响应

  10. 10

    如何使用 Fetch api 获取 CORS 请求中的标头字段

  11. 11

    使用Perl的File :: Fetch获取http-response标头

  12. 12

    使用 fetch 或 axios 发送身份验证标头

  13. 13

    在JAX-RS中使用Location标头创建响应

  14. 14

    使用Python请求模块获取HTTP响应标头

  15. 15

    如何使用中间件向响应添加标头?

  16. 16

    使用Last-Modified标头使已存储的响应无效

  17. 17

    如何让Rails根据标头使用json进行响应

  18. 18

    使用Strongloop框架的自定义响应标头

  19. 19

    使用sails.js修改响应标头以实现HSTS

  20. 20

    在Swift中使用Alamofire时如何获取响应标头?

  21. 21

    使用Http标头与Spray-Client解组响应

  22. 22

    使用Spray映射所有响应的标头

  23. 23

    使用HttpUrlConnection无法获得正确的标头响应代码

  24. 24

    使用HttpClient响应时无法获取“ location”标头

  25. 25

    在Flutter中使用Dio时忽略响应标头

  26. 26

    如何使用Apache从HTTP响应中删除Server:标头?

  27. 27

    使用Http标头与Spray-Client解组响应

  28. 28

    如何使用PromiseKit处理仅标头响应?

  29. 29

    使用Spray映射所有响应的标头

热门标签

归档