Javascript express.js request.query为空
我从google OAuth2重定向了URL,Javascript express.js request.query为空,javascript,express,google-oauth,Javascript,Express,Google Oauth,我从google OAuth2重定向了URL, http://localhost:997/?#state=pass-通过%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_uphofb0sxc5dqsm6lqhrwxbtnheblxjeloytggwsvtctgxojjjodiutyh7vchozcefud_&u token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth
http://localhost:997/?#state=pass-通过%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_uphofb0sxc5dqsm6lqhrwxbtnheblxjeloytggwsvtctgxojjjodiutyh7vchozcefud_&u token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/youtube.readonly
当我想从中获取访问令牌时,问题出现了
var express = require('express'),
app = express(),
port = process.env.PORT || 997;
app.get("/", (req, res, next) => {
console.log(req.query);
res.send("hi");
});
app.get("/url", (req, res, next) => {
res.json('test');
});
app.listen(port, ()=>{
console.log("Server on port: " + port);
});
进入现场后的输出:
`[nodemon] starting `node main.js`
Server on port: 997
{}
删除#state=pass-through%20value
后,使链接看起来http://localhost:997/?&access_token=ya29.Il-6B4zOwiM7bLeWcyJX9iQGuj3lCGU-6lbnJWdxqcPkBCMkUf8P2xxwMUrFjI-mNNT-X8QEBxA18p1IXsGS5wjiscVMv和令牌类型=承载和到期时间=3599和范围=https://www.googleapis.com/auth/youtube.readonly
,工作正常,输出正确。有人知道我做错了什么吗?从您的请求中删除
。因为在#
之后,签名url将不会被使用。#
符号通常用于指示特定的DOM元素id
你的URL
应该是这样的,
http://localhost:997/?state=pass-通过%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_uphofb0sxc5dqsm6lqhrwxbtnheblxjeloytggwsvtctgxojjjodiutyh7vchozcefud_&u token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/youtube.readonly
也请参考此
如果要使用
传递Dom元素id
,则应在url
末尾使用它
?param=sasad¶m2=adsasa#my_元素
如果
是参数的一部分,则应将其编码为%23
或您应该将其发送到请求正文后从您的请求中删除
。因为在#
之后,签名url将不会被使用。#
符号通常用于指示特定的DOM元素id
你的URL
应该是这样的,
http://localhost:997/?state=pass-通过%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_uphofb0sxc5dqsm6lqhrwxbtnheblxjeloytggwsvtctgxojjjodiutyh7vchozcefud_&u token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/youtube.readonly
也请参考此
如果要使用
传递Dom元素id
,则应在url
末尾使用它
?param=sasad¶m2=adsasa#my_元素
如果
是参数的一部分,则应将其编码为%23
或您应该将其发送到请求正文中谢谢您的回复!但是这个URL是来自google OAuth2的重定向URL,我是否能够以某种方式更改它,并且仍然将其作为查询?重定向URL是由您提供的,对吗?因为你是说谷歌在成功认证后重定向到那个URL。所以你们应该在你们这边进行修正。好吧,重定向url现在看起来很好,因为我不能把localhost放在那个里。老实说,我不知道怎么做。我试着自己获取request.url
并解析它,但这似乎是个愚蠢的想法。还有更好的吗?我不认为。那么你应该使用request.url
手动完成。谢谢你的帮助:)谢谢你的回复!但是这个URL是来自google OAuth2的重定向URL,我是否能够以某种方式更改它,并且仍然将其作为查询?重定向URL是由您提供的,对吗?因为你是说谷歌在成功认证后重定向到那个URL。所以你们应该在你们这边进行修正。好吧,重定向url现在看起来很好,因为我不能把localhost放在那个里。老实说,我不知道怎么做。我试着自己获取request.url
并解析它,但这似乎是个愚蠢的想法。还有更好的吗?我不认为。那么你应该使用request.url
手动完成。谢谢你的帮助:)