当我向我的node.js / express web服务器发送GET请求时,路由后面有一个URL,而不是记录所述URL的服务器,而是存储了favicon.ico:
var express = require("express");
var app = express();
app.get("/:query", function (req, res) {
var query = req.params.query;
console.log(query);
})
var port = process.env.PORT || 8080;
app.listen(port, function () {
console.log('Node.js listening on port ' + port + '...');
});
因此,当我转到https://my-domain-url.io/http://www.google.co.uk
时,打印到控制台的内容是:favicon.ico
而不是http://google.co.uk
有谁知道为什么会发生这种情况以及如何预防?
(我目前正在使用req.headers.referer
使用解决方法,它为我提供了完整的https://my-domain-url.io/http://www.google.co.uk
然后我手动解析。)
答案 0 :(得分:1)
这在我身上发生了……这是因为HTML正在寻找一个favicon作为页面的子请求:
val uploadTask
基本上,浏览器要求将“ favicon.ico”作为脚本参数。在资源调用为我解决之前添加一个斜杠,就像这样:
`sendButton.setOnClickListener {
uploadTask.addOnFailureListener(OnFailureListener{
Toast.makeText(this, "Upload Failed", Toast.LENGTH_SHORT).show()
}).addOnSuccessListener(OnSuccessListener<UploadTask.TaskSnapshot>{
storageRef.getDownloadUrl().addOnSuccessListener(OnSuccessListener<Uri> {
downloadURL = it.toString()
val intent = Intent(this, ChooseUserActivity::class.java)
intent.putExtra("imageName", imagetbpname)
Toast.makeText(this, "download URL $downloadURL", Toast.LENGTH_LONG).show()
intent.putExtra("imageURL", downloadURL)
intent.putExtra("Message", userInputMessage!!.text.toString())
startActivity(intent)`
Log.i("URL", downloadURL)
})
})
}
浏览器也可能会自动查找收藏夹图标。 This solution may help。
答案 1 :(得分:-1)
一种方法:
var express = require("express");
var app = express();
app.get("/*", function (req, res, next) {
var query = req.params[0];
console.log(query);
next(); //you need add next, otherwise your query will hang there
})
var port = process.env.PORT || 8080;
app.listen(port, function () {
console.log('Node.js listening on port ' + port + '...');
});