Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中返回特定的头_Javascript - Fatal编程技术网

在javascript中返回特定的头

在javascript中返回特定的头,javascript,Javascript,我正试图通过javascript片段从我的discord帐户返回授权密钥。之前我是通过打开chrome开发者工具进入“api/v6”中的网络类型重新加载页面选择“library”,然后单击标题并向下滚动,它将显示token:(token) 我试图用javascript返回这个,但似乎没有得到我需要的返回 var req = new XMLHttpRequest(); req.open('GET', document.location, false); req.send(null); var he

我正试图通过javascript片段从我的discord帐户返回授权密钥。之前我是通过打开chrome开发者工具进入“api/v6”中的网络类型重新加载页面选择“library”,然后单击标题并向下滚动,它将显示token:(token)

我试图用javascript返回这个,但似乎没有得到我需要的返回

var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders('library').toLowerCase();
alert(headers);
我希望得到像这样的东西

 :authority: discordapp.com
 :method: GET
 :path: /api/v6/users/@me/library
 :scheme: https
 accept: */*
 accept-encoding: gzip, deflate, br
 accept-language: nl
 authorization: (token)
相反,我得到了回报

date: wed, 13 feb 2019 10:58:38 gmt
content-encoding: br
server: gws
x-frame-options: sameorigin
content-type: text/html; charset=utf-8
status: 200
cache-control: private
alt-svc: quic=":443"; ma=2592000; v="44,43,39"
x-xss-protection: 1; mode=block
expires: wed, 13 feb 2019 10:58:38 gmt

首先需要解析字符串:

 let arr = headers.trim().split(/[\r\n]+/);
之后,您可以使用来自该响应的解构赋值。比如:

let {authorization, path, ...} = arr;

getAllResponseHeaders
返回所有标题。您需要方法
getResponseHeader
来获取特定的头

因此,您的代码将变成:

var headers = req.getResponseHeader('library').toLowerCase();

请参阅。

您正在使用一个名为
getAllResponseHeaders
的函数,但是您所期望的头是请求头(从浏览器发送到服务器)-以及一些关于请求的其他信息,这些信息根本不是头,而不是响应头(从服务器发送到浏览器)

没有提供通过XMLHttpRequest(或fetch)检查传出头的API


如果您想知道它们是什么,您需要编写服务器端代码以将它们回显到客户端。

阅读“您不将字符串传递给getAllResponseHeaders”并返回所有标题的字符串,您需要对其进行分析。这将不起作用,因为标题是单个字符串。请参阅“我编辑了我的问题”部分我的代码片段没有返回标记它只返回一些其他标题要在您的响应中获取令牌,您需要使用您的凭据向discord授权服务器发出get请求。我编辑了我的问题,我的问题片段根本没有返回令牌,它只返回一些其他标题。chrome如何在网络控制台中看到它们?@MrKushy-因为rome正在发送标题,并在开发者工具中提供对标题的更多访问(只有浏览器用户才能访问),然后再从Joe Random的网站上访问JavaScript。