快速编辑URL查询到" favicon.ico"

时间:2016-03-31 10:45:20

标签: javascript node.js express get

当我向我的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然后我手动解析。)

2 个答案:

答案 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 + '...');
});