【问题标题】:How to GET photos through localhost如何通过 localhost 获取照片
【发布时间】:2019-04-24 08:48:44
【问题描述】:

我正在设置一个本地服务器,我想通过http://localhost:3000/photos/ GET photo src,但它不会将 photo src 保存到 .txt 文件。

我已经在 server.js 中尝试过:

app.get('/phofn', function(req, res){
  fs.readFile('Photo.txt', function(err, data){
    res.send(data);
  });
});

app.get('/photos/:poto', function(req, res) {
  var foto = req.src.poto
  fs.appendFile('Photo.txt',foto, function (err) {
    if (err) throw err;
    console.log('Saved!');
  });
  fs.readFile('Photo.txt', function(err, data) {
    res.send(data);
    res.end();
  });
});

这在 HTML 中:

function loadDoc() {
  var photo = document.getElementById("photo").src;
  $.get("http://localhost:3000/photos/" + photo, function(data, status){
    alert(data);
    console.log(data);
  });
}

【问题讨论】:

  • but I can't GET it - 为什么?有错误吗?也许与 CORS 有关?
  • 很可能这是 stackoverflow.com/a/35553666/19068 的副本,但问题中没有足够的信息来确定
  • 在您的 HTML 中,您声明的是绝对路径,而不是像在 JavaScript 中那样声明相对路径 /photos/。这可能会导致解析器关闭,因为它会自动呈现您的本地主机地址。
  • @MaxVoisard — 这没有任何意义。 /photos/ 是绝对路径。您是否建议浏览器将 http://etc/etc 添加到绝对 URL(即以方案开头的 URL)?浏览器不会这样做。
  • 实际上我更多地参考了你所说的 JavaScript 和 HTML 必须具有相同的路径和同源策略。

标签: javascript node.js get backend


【解决方案1】:

看起来您正在使用express。你已经定义了一个named route paramaterapp.get('/photos/:poto' ...

poto 参数可以通过req.params 而不是req.src 访问(除非您使用一些中间件来设置src 属性)

app.get('/photos/:poto', function(req, res) {
  var foto = req.params.poto
  ...
  // rest of the code
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多