Node.js重定向例程post方法时出现问题

Node.js重定向例程post方法时出现问题,node.js,express,post,Node.js,Express,Post,我写这篇文章是为了能帮助我的人,因为我是NodeJS的新手,我试图做一些简单的事情,但最终对我来说不起作用 我希望从前端通过ajax post方法向后端发出请求。当执行它时,从前端向后端发送一个JSON对象,然后从后端它必须重定向到另一个页面到前端。后者是我无法实现的 我尝试的例子 前端 var objAgente = { "FIRSTNAME": "PEDRO", "LASTNAME": "PEREZ", "NRORUT": "123456789",

我写这篇文章是为了能帮助我的人,因为我是NodeJS的新手,我试图做一些简单的事情,但最终对我来说不起作用

我希望从前端通过ajax post方法向后端发出请求。当执行它时,从前端向后端发送一个JSON对象,然后从后端它必须重定向到另一个页面到前端。后者是我无法实现的

我尝试的例子

前端

 var objAgente = {
      "FIRSTNAME": "PEDRO",
      "LASTNAME": "PEREZ",
      "NRORUT": "123456789",
      "NROAGENT": "3",
      "HRCONNECT": "12:12:12"
 };

 $.ajax({
      type: 'POST',
      url: '/LoginAgente',
      data: JSON.stringify({ "objectData": objAgente}),
      success: function(data) {
        if (data && data.redirect) {
          window.location.href = data.redirect;
        }
      },
      contentType: "application/json",
      dataType: 'json'
 });
后端

当我将JSON对象发送到后端时,数据到达,因为我可以通过控制台打印它,但是res.redirect没有完成

它不会返回错误,但不会将我重定向到所需的位置


非常感谢那些能给我一个想法的人​​所发生的事情

无需更改后端代码,因为它在将来需要非ajax身份验证时可能会很有用

因此,只需尝试从响应中获取位置头并使用window.Location.href重定向即可

前端

var objAgente={ 名字:佩德罗, 姓:佩雷斯, NRORUT:123456789, 代理人:3, HRCONNECT:12:12:12 }; $.ajax{ 键入:“POST”, url:“/LoginAgente”, data:JSON.stringify{objectData:objAgente}, 成功:functiondata、textStatus、request{ const redirectTo=request.getResponseHeader'Location'; 如果重定向到{ window.location.href=重定向到; } }, contentType:application/json, 数据类型:“json” }; 而不是

res.redirect'/Agente'

试一试

res.send{redirect:'/Agente'}

更新:

前端

 var objAgente = {
      "FIRSTNAME": "PEDRO",
      "LASTNAME": "PEREZ",
      "NRORUT": "123456789",
      "NROAGENT": "3",
      "HRCONNECT": "12:12:12"
 };

 $.ajax({
      type: 'POST',
      url: '/LoginAgente',
      data: JSON.stringify({ "objectData": objAgente}),
      success: function(data) {
        if (data && data.redirect) {
          window.location.href = data.redirect;
        }
      },
      contentType: "application/json",
      dataType: 'json'
 });

希望这有帮助

当您使用AJAX发送请求时,服务器无法重定向到AJAX请求中的其他页面,您必须在收到AJAX响应后重定向用户

 $.ajax({
      type: 'POST',
      url: '/LoginAgente',
      data: JSON.stringify({ "objectData": objAgente}),
      success: function(data, textStatus, request){

         // add redirect link here 
         window.location.href = '/add_link_to_redirect_here';

      },
      contentType: "application/json",
      dataType: 'json'
 });

我想如果你想用它来观察整个身体

var newUser = req.body;
console.log(newUser);
你应该在你的前面像这样传递物体:

data: JSON.stringify(objAgente)
做你正在做的事:

req.body
因为如果你将你的物体传递到一个新物体中,他会明白你将在物体内部获得这些礼节,比如:

req.body.objectData.FIRSTNAME

您好num8er,我正好想从这里重定向。router.post'/LoginAgente',function req,res{//将一些操作和查询发送到BD,然后res.redirect'/agent';};因为,在post方法中,我将执行一些查询,并最终生成一个JSON,将其返回到我将要创建的页面redirect@MiguelEduardoRangelGomez您不能同时使用重定向和json正文进行响应。这是不正确的。如果你想回复json,那么看看David的答案,然后去做。我非常感谢你对帮助我的兴趣。你向我指出的重定向方法是正确的,它是有效的,但除了重定向。。。我需要传递URL以外的某些变量。我想通过EJS模板引擎从后端发送这些变量。我还能怎么做呢?嗨,大卫R,我按你说的放好了,但什么也没发生。你还有其他建议吗?@MiguelEduardoRangelGomez还需要更改前端代码:window.location.href=data.redirect。问题作者使用SO导师来实现他的目标,而不做任何事情himself@num8er如果我是一名专家,也许我会更乐于助人,或者更清楚地说明我是如何做到的[Saurabh Mistry]它做得如此简单,以至于它诽谤人们。同样,非常感谢您的时间和帮助。@MiguelEduardoRangelGomez真的请您慢慢看这些:
req.body.objectData.FIRSTNAME