我有来自谷歌OAuth2的重定向URL,http://localhost:997/?#state=pass-through%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_UphOFB0SXc5dqsm6LqHRWXbtNHisEblxjeLoYtGgwSVtCTGxOjjODiuTyH7VCHoZCEfUd_&token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/youtube.readonly
当我想从中获取access_token时,问题就出现了。
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&token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/youtube.readonly
,它工作正常,并且输出是直截的。有人知道我做错了什么吗?
从请求中删除#
。因为#
之后,签名网址不会被措辞。#
符号通常用于表示特定DOM element id
。
你的URL
应该是这样的,
http://localhost:997/?state=pass-through%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_UphOFB0SXc5dqsm6LqHRWXbtNHisEblxjeLoYtGgwSVtCTGxOjjODiuTyH7VCHoZCEfUd_&token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/youtube.readonly
另请参阅此质量保证
如果你想用#
通过Dom element id
,你应该在url
结束时使用它
?param=sasad¶m2=adsasa#my_element
如果#
是参数的一部分,则应将其编码为%23
.。或您应该在发布请求正文中发送它