此实现用于e2e测试,它是一种检查文件是否可下载而不是实际下载的解决方法。
当前,我正在使用以下代码从特定的HEAD请求获取标头和状态。这里的问题是它不使用先前步骤中的授权,因此很明显,我将不得不再次授权,但这次是使用cookie。
1)如何从浏览器获取cookie(我只需要sessionID
cookie),我的意思是从活动会话中获取cookie,因为正如我所说,我已经登录了?并且还将sessionID存储在全局变量中。
2)在下面提供的代码中,如何发送/使用cookie(sessionID
)进行授权?
我正在使用JavaScript / Node.js
getHeader: async function (url) {
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
url = "{url}.pdf";
xhr.open("HEAD", url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == this.DONE) {
console.log('HEADERS: ' + xhr.getAllResponseHeaders());
console.log('STATUS: ' + xhr.status)
}
};
xhr.send(null);
},
答案 0 :(得分:0)
我认为您应该使用cookie解析器模块(https://www.npmjs.com/package/cookie-parser):
var express = require('express')
var cookieParser = require('cookie-parser')
var app = express()
app.use(cookieParser())
app.get('/', function (req, res) {
// Cookies that have not been signed
console.log('Cookies: ', req.cookies)
// Cookies that have been signed
console.log('Signed Cookies: ', req.signedCookies)
})
app.listen(8080)
除此之外,您还可以查看ExpressJS文档以获取使用cookie时的最佳实践: https://expressjs.com/en/advanced/best-practice-security.html#use-cookies-securely