【问题标题】:How do I call a invoke an ajax get request from client side, using Node/Express?如何使用 Node/Express 从客户端调用调用 ajax 获取请求?
【发布时间】:2016-10-11 04:35:40
【问题描述】:

我有一个文件 shuffleRoute.js 我在其中定义:

router.get("/shuffle?jokers=false", function (req, res) {
   cards['a','b','c'];
   let shuffledCards =  _.shuffle(cards);

    res.status(200).send(shuffledCards);

});

我有一个 index.js 我在其中定义:

app.get("/v1/game", require("./routes/shuffleRoute.js"));

我有一个 game.html,我需要在其中执行 ajax 请求以获取洗牌。我该怎么做?

这样做

  $.get( "/v1/game", function(res) {
        console.log(res);
    });

不工作。

我收到此错误:

jquery-2.2.4.min.js:4 GET localhost:8080/v1/game 500 (Internal Server Error) –

我正在使用 morgan 在服务器中记录错误的内容。

但是,将其注释掉会给我这个错误。

jquery-2.2.4.min.js:4 GET http://localhost:8080/v1/game 404 (Not Found)

【问题讨论】:

  • 浏览器控制台有错误吗?
  • “不工作”是什么意思? “不工作”不是对问题的可接受描述。您有义务自己进行基本故障排除并报告您在此过程中学到的知识。您从 ajax 调用中得到什么错误或响应。基本故障排除将检查您的 ajax 调用中的错误并告诉我们它的内容。
  • jquery-2.2.4.min.js:4 GET localhost:8080/v1/game 500(内部服务器错误)
  • 所以ajax调用正常,问题出在服务器上。检查服务器控制台中的错误。
  • 将该信息添加到您的问题中。很明显,您的服务器中还有其他事情正在发生,您没有向我们展示,因为您向我们展示的任何代码都不会产生 500 错误。

标签: javascript jquery ajax express


【解决方案1】:

可能是错的,但我在这里看到路线问题。

当您定义路由以供快速使用时app.use

var myRoute = require('PathToYourRouteFile');

app.use("/v1/game", myRoute);

在路由文件中。我假设你使用快速路由器,你需要定义这样的东西

youRuoterName.get('/', function(req, res, next) { })

当您转到localhost/v1/game时,此请求将成功。

如果你想要另一个就去做

youRuoterName.get('/shuffle', function(req, res, next) { })

转到/v1/game/shuffle会成功。

在您的示例中,我只看到一条路线 /v1/game/shuffle 显然与 /v1/game 不匹配,我什至不确定其余代码是否按预期工作。

所以请仔细阅读文档http://expressjs.com/en/4x/api.html#router.route 一切都应该工作。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-12-06
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多