在javascript

时间:2019-02-13 10:51:35

标签: javascript

我正在尝试通过JavaScript代码段从我的不和谐帐户中返回授权密钥。以前,我将通过打开chrome开发人员工具来获取令牌,方法是:转到“ api / v6”中的“网络”类型,重新加载页面,选择“库”,然后单击标题并向下滚动,它将显示令牌:(令牌)。

我试图用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

3 个答案:

答案 0 :(得分:0)

首先,您需要分析字符串:

 let arr = headers.trim().split(/[\r\n]+/);

之后,您可以从该响应中使用解构分配。像这样:

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

答案 1 :(得分:0)

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; 返回所有标题。您需要方法getAllResponseHeaders来获取特定的标头。

因此您的代码将变为:

getResponseHeader

请参见documentation here

答案 2 :(得分:0)

您正在使用一个名为getAllResponseHeaders的函数,但您说期望的标头是 request 标头(从浏览器发送到服务器)–以及有关请求的其他一些信息根本不是标题,也不是响应标题(从服务器发送到浏览器)。

没有提供用于通过XMLHttpRequest(或获取)检查传出标头的API。

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