2013-03-15 113 views
3

调入快递/节点这样的:res.render不渲染视图,返回HTML文本

jQuery.ajax({ 
      url : url, 
      type: "GET", 
      data: {names : names}, 
      success: function(data) { 
       console.log("ajax post success"); 
      }, 
      error: function(jqXHR) { 
       console.log(jqXHR.responseText + ' :: ' + jqXHR.statusText); 
      } 
     }); 

在快递router.js:

app.get('/metrics/:title/:node/:metric', function(req,res) { 
    console.log("received request "); 
console.log(req.query.names); 
    res.render('nltuning', { 
     locals: { 
      tdata : req.params.title, 
      gdata : req.params.node, 
      mdata : req.params.metric, 
      ndata : req.query.names 
     } 
    }); 
}); 

所有控制台封邮件都正确打印,AJAX的成功打印。 ajax在响应中显示html文本。

并且未呈现视图。相同的POST,GET - 为什么?

如果我在浏览器窗口中输入相同的URL,则呈现视图。任何指针赞赏。

+0

我看到这条线被丢失:成功:功能(数据){ 的console.log( “AJAX交成功”); jQuery('body')。html(data); }, – user1447121 2013-03-15 21:44:29

回答

3

如果你想在ajax调用之后显示新内容,是否应该有脚本代码来表示这样做? 例如:

success: function(data){ 
     $('someElement').html(data); 
    } 
+0

是的,刚发布后才意识到它。但我有一个后续问题。我如何在新选项卡中显示新视图?这似乎并没有工作:jQuery('body')。target ='_blank'; – user1447121 2013-03-15 21:45:33

+0

我还没有处理过这个问题,但可能会有所帮助:window.open('打开url','窗口名','attribute1,attribute2')打开一个新选项卡并将“名称”放入属性中,这不会是真正的Ajax,但至少它会工作,我会说 – ITFarmer 2013-03-15 22:11:10