我通过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()
,但是没有任何因素导致客户端自动呈现页面。
我可能会误解一些基本的东西,但我会感激任何建议。
答案 0 :(得分:0)
我找到了解决方案。我没有用JavaScript(AngularJS)发出服务器请求,而是让 HTML表单直接将数据发送到服务器。我使用action
HTML属性将表单数据定向到Express路由。 (现在我甚至没有使用AngularJS。)通过这种方式,浏览器会自动呈现响应中发送的任何内容。