我通过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()
,但是没有什么会导致客户机自动呈现页面。
我可能在这里误解了一些基本的东西,但我希望得到任何建议。
发布于 2015-12-26 16:54:38
我找到了解决办法。我没有在JavaScript (AngularJS)中发出服务器请求,而是让HTML直接向服务器发送数据。我使用action
属性将表单数据定向到Express路由。(现在我甚至没有使用AngularJS。)通过这种方式,浏览器自动呈现响应中发送的任何内容。
https://stackoverflow.com/questions/33700526
复制相似问题