首页 > 解决方案 > 节点 js:POST/GET 方法在被 AJAX 调用时不起作用

问题描述

这是 AJAX 函数:

$(document).ready( function() {
  $("div").click( function() {
    $.ajax({
      type:'POST',
      url:'/activity',
      data:"ok",
      success:function(data) {
        window.alert("Entered AJAX");
      }
    })
  });
});

这是我的帖子:

app.post("/activity", urlencodedParser, function(req,res) {
  console.log("Entered POST");
  res.redirect('/activity/test');
  res.end();
});

最后那是我的 GET:

app.get('/activity/test', function(req,res) {
  res.writeHead(200);
  res.end("hello world\n");
  console.log("Entered GET");
});

所以我在控制台中收到“Entered GET”消息,但页面仍然是初始页面,我没有任何“hello world”消息。

另一方面,当我从另一个表单发出相同的 POST 请求时,它工作正常。

标签: javascriptjquerynode.jsajax

解决方案


您的浏览器显示的页面不会因为这个 ajax 调用而改变。您的网络服务器返回的“hello world”字符串应该在传递给您的成功回调的数据中。

如果您希望浏览器在完成发布请求后显示“/activity/test”页面,请尝试将其添加到您的成功回调中:

window.location.href = 'www.yourpage.com/activity/test';

推荐阅读