我正在使用express js,并且特定端点使用
呈现页面res.render('dialog',{state:'admin'});
此端点位于http://localhost:3000/api/login。当我在浏览器中打开此链接时,它会打开dialog.ejs页面,但是当我使用来自服务器其他部分的GET请求调用此端点时,dialog.ejs页面不会呈现
request({
url: 'http://localhost:3000/api/login',
headers:{
'Authorization' : auth
},
method: 'GET'
}, function(err, response, body) {
console.log("Response to request for authorization code : " + response.statusCode);
});
请帮忙!
答案 0 :(得分:0)
好吧,当你构建一个手工制作的请求时,你可能会错过浏览器发送的一半标题,这可能是整个事情失败的原因之一
另一方面,如果你要制造机器加工请求,你不想要ejs页面渲染,你只需要恢复所需的数据和/或让服务器做一些事情" 当您从浏览器登录时"。
当您包含授权标头时,您可能会尝试模拟某种登录或授权(可能是JWT令牌?)
任何情况我认为你唯一的选择就是模仿你的浏览器尽可能做的事情。因此,构建一个完全正确的标题集,注入将会发生的事情 是表单数据的结果,可能是url_encoded,并使用正确的请求方法(GET是完全正确的,但来自POST的html更常见。检查它)
只有一个建议。从/ api / login渲染完整的网页似乎有点不正确。通常Api enpoints仅与JSON交谈。进出