AngularJS POST请求未呈现生成的HTML

时间:2015-11-13 19:36:40

标签: angularjs post express

我通过AngularJS的$http()函数将表单数据发送到Express服务器(相关代码见下文)。服务器处理传入的POST数据,通过res.render("some_EJS_view")呈现EJS表单,然后将生成的HTML发送回客户端。

问题:客户端不会在响应中呈现此HTML。我知道客户端 接收完全呈现的HTML,因为我在使用Firefox的Firebug插件的响应中看到了HTML。

AngularJS代码:

// Called when user submits form.
$scope.loginUser = function() {
   $http({
      url: 'http://##.##.##.##:8080/login',
      method: 'POST',
      data: $scope.user // end form data
   });
}

但是,如果我在浏览器地址栏中发出请求(当然,更改服务器以侦听GET请求,并在服务器上设置虚拟值代替$scope.user),浏览器按预期呈现HTML。

如何让客户端呈现此HTML?我尝试使用服务器上的其他功能,例如res.send()res.sendFile(),而不是res.render(),但是没有任何因素导致客户端自动呈现页面。

我可能会误解一些基本的东西,但我会感激任何建议。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我没有用JavaScript(AngularJS)发出服务器请求,而是让 HTML表单直接将数据发送到服务器。我使用action HTML属性将表单数据定向到Express路由。 (现在我甚至没有使用AngularJS。)通过这种方式,浏览器会自动呈现响应中发送的任何内容。