我正在尝试通过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
答案 0 :(得分:0)
首先,您需要分析字符串:
let arr = headers.trim().split(/[\r\n]+/);
之后,您可以从该响应中使用解构分配。像这样:
let {authorization, path, ...} = arr;
答案 1 :(得分:0)
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
返回所有标题。您需要方法getAllResponseHeaders
来获取特定的标头。
因此您的代码将变为:
getResponseHeader
答案 2 :(得分:0)
您正在使用一个名为getAllResponseHeaders
的函数,但您说期望的标头是 request 标头(从浏览器发送到服务器)–以及有关请求的其他一些信息根本不是标题,也不是响应标题(从服务器发送到浏览器)。
没有提供用于通过XMLHttpRequest(或获取)检查传出标头的API。
如果您想知道它们是什么,则需要编写服务器端代码以将它们回显给客户端。