我正在使用Express在基于Node.js的服务器上工作。
用例:
用户应该能够通过使用以下URL进行HTTP GET从服务器检索其个人内容:http://192.168.1.88:3000/content/[userID]
我已经定义了这样的路线:
app.get('/content/:userID', content.MyHandler);
在“MyHandler”中,我可以阅读 userID 并将相应的数据返回给用户。
问题是,当“ userID ”包含井号(#)时,我只能获得MyHandler中#之前的内容,因此我无法找到谁是用户。
因此,如果 userID 是“123456”,一切都很好。但如果 userID 是“1234#567”,我在MyHandler中只获得“1234”。
MyHandler看起来像这样:
exports.MyHandler = function(req, res){
...
var pathChunk = req.url.split("/");
// sys.puts("--> Path in chunks: " + sys.inspect(pathChunk));
// Nothing after # sign
var userID = pathChunk[2]; // Will be incomplete if contains #
};
有没有办法在MyHandler中检索完整的 userID 值,而不管井号(#)是什么?
答案 0 :(得分:1)
浏览器不会将哈希和所有内容发送到服务器。
答案 1 :(得分:1)
您需要URL编码userID以便以可在URL行传递的格式对字符串进行编码。
这在javascript中会是这样的:
var userId_encoded = encodeURIComponent(userId);