Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Express中的POST请求更新页面内容_Javascript_Jquery_Node.js_Express - Fatal编程技术网

Javascript 从Express中的POST请求更新页面内容

Javascript 从Express中的POST请求更新页面内容,javascript,jquery,node.js,express,Javascript,Jquery,Node.js,Express,我有一个问题,我试图通过一个通过表单完成的POST请求来更新web页面的内容,但问题是变量被设置为全局范围,每次我刷新页面时,内容仍然存在。有人解释了问题所在,并告诉我,我可以“…让post返回包含数据的JSON对象,而不是执行重定向。然后从客户端执行post异步并显示数据。”下面是我正在使用的代码: 快递: var data; var url; /* GET home page. */ router.get('/', (req, res, next) => { res.rend

我有一个问题,我试图通过一个通过表单完成的POST请求来更新web页面的内容,但问题是变量被设置为全局范围,每次我刷新页面时,内容仍然存在。有人解释了问题所在,并告诉我,我可以“…让post返回包含数据的JSON对象,而不是执行重定向。然后从客户端执行post异步并显示数据。”下面是我正在使用的代码:

快递:

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请求。有人能详细说明上面建议我做什么吗?或者给我另一个解决方案。

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

提供。哦,我知道了,我想我在文档中错过了,谢谢!