javascript - 如何在 express node.js 中发送对 ajax post 请求的响应?[已回答]

标签 javascript jquery node.js ajax express

我正在做一个简单的项目来练习 node js 和 Jquery Ajax。 所以我有一个 ajax post 请求,它向 nodejs 服务器发送一些数据并等待响应。在服务器端,我有一段代码可以读取数据并对其进行处理。这很好用。但是,当我尝试将响应发送回 ajax 时,页面发生变化,并以纯文本形式显示响应。我想要的是对 ajax 端的响应做一些事情。 抱歉,如果我不清楚,但希望您在阅读代码时能够理解。

Jquery Ajax代码:

$("submitBtn").on("click", e=>{
        e.preventDefault();
        $.ajax({
            url: "/getCity",
            type: "POST",
            data: `city=${cityName}&country=${countryName}`,
            success: function(data){
                console.log(data);
            }
        });
    });

服务器端代码:

app.post("/getCity", (req, res)=>{
    //a promise
    .then(cityID=>{
        res.status(200).send(cityID.toString());
        });
});

html代码:

<form method="post" action="/getCity">
    <input/>
    <input/>
    <button id="submitBtn" type="submit">Search Weather</button>
</form>

我包含了 html 代码,因为即使发出 ajax post 请求,我也不知道是否需要放置 method="post"action="/getCity"。 我希望你能帮助我解决这个问题,如果可能的话,还可以帮助我解决 html 问题。 先感谢您。 注意:这个问题是我之前问过的另一个问题的再现。我这样做是因为它被标记为重复,但之后它被另一个用户回答,只是在评论中,他要求这样做是为了将来让其他人从中受益。

最佳答案

请在您的 html 文件中按如下方式使用它。应该可以解决你的问题

<body>
    <form method="post" id="cityform">
        <button id="submitBtn" type="submit">Search Weather</button>
    </form> 
</body>

<script>
    $("#cityform").submit(function(e) {
        e.preventDefault();
        $.ajax({
            url: "https://localhost:8443/getCity",
            type: "POST",
            data: {
                'city': 'pune',
                'country': 'India',
            },
            success: function(data){
                console.log(data);
            }
        });
    });

</script>

发布请求应该是这样的,我正在调用一些函数作为 findCity,你不必使用它。

app.post("/getCity", (req, res) => {
    var cityname= req.body.city;
    var country= req.body.country;
    city.findCity(cityname, country).then((cityID) => {
        res.status(200).send({ cityID: '123' });
    }).catch((e) => {
        res.status(400).send(e);
    });
});

关于javascript - 如何在 express node.js 中发送对 ajax post 请求的响应?[已回答],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55359374/

相关文章:

javascript - 缩放 D3 map 时出错

javascript - 动态使用另一个元素的高度

html - 使用 Nodemailer 联系表单

javascript - Javascript/NodeJS 中的 Protocol Buffer 字段选项

javascript - 如何隐藏jquery选择的下拉列表框中的值?

javascript - 如何使用 websocket 向客户端发送多个数组

javascript - 从 popState() 获取 PushState() 的状态

javascript - 如何在延迟后显示建议而不使用 jquery UI 自动完成按任何键?

javascript - 导航到新页面不会滚动到顶部

node.js - 为什么在PhpStorm/WebStorm中自动导入生成根 Node 模块的相对路径