【问题标题】:Update content of page from a POST request in Express从 Express 中的 POST 请求更新页面内容
【发布时间】:2017-01-21 01:33:44
【问题描述】:

我遇到了一个问题,我尝试通过表单完成的 POST 请求来更新网页的内容,但问题是变量被设置为全局范围,并且每次我刷新页面时内容仍然存在。有人解释了问题所在并告诉我,我可以“...让帖子返回一个带有数据的 JSON 对象,而不是进行重定向。然后从客户端执行 POST 异步并显示数据。 em>" 这是我正在使用的代码:

快递:

var data;
var url;

/* GET home page. */
router.get('/', (req, res, next) => {
    res.render('index', { 'data': data});
});

/* POST HANDLER */
router.post('/link', function(req, res, next) {
    var pattern = /^((http|https|):\/\/)/;
    url = req.body.link;

    if (!pattern.test(url))
    {
        url = "http://" + url;
        bitly.shorten(url)
        .then(response => {
            data = response.data.url;

            res.redirect("/");
        });
    }
});

我正在使用 jQuery 进行 POST 请求:

$('#shortLink').on('click', () => {
    $.ajax({
        type: 'POST',
        url: '/link',
        data: {link: $('#linkInput').val()},
        success: data => {
            console.log(data);
        }
    });
});

我要做的是获取输入的值,将其发送到 Express 上的 POST 处理程序,然后将该信息传递回主页,而不必离开页面;就像一个常见的 Ajax 请求。有人可以详细说明我被建议做的事情吗?或者给我另一个解决方案。

【问题讨论】:

    标签: javascript jquery node.js express


    【解决方案1】:

    没有规定您必须在处理发布请求后重定向。只需通过res.json({'url': response.data.url}) 将数据发回,然后在您的$.ajax 成功处理程序中,它将通过data.url 提供。

    【讨论】:

    • 哦,我知道了,我想我在文档中错过了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2020-10-23
    • 2019-05-26
    • 2016-12-20
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多