我知道如何使用angular js向服务器发送http请求。返回promise
后,我知道如何监听response
并操纵ui。但是这种方法不能用于我的想法。
然而,我无法弄清楚的是,如何向网站发送请求。
我有一个服务器localhost:800/receiveData
,它接收POST
请求,然后在angularjs网站上操作UI和DoM
app.get('/', function(req,res){
res.sendFile(__dirname+'/index.html')
})
app.post('/receiveData', function(req,res){
var data = req.body.data
// assume data is a boolean
if(data){
//show a view in index.html using angular js or anything else
}else {
//show a different view in index.html
}
});
任何帮助将不胜感激。我需要角度js。拥有SPA是必不可少的。如果需要,我完全愿意添加额外的堆栈。
编辑:
正如MarcoS所指出的那样,理想情况下不应该从服务器端对dom进行操作。我正在将IPFS
与node js
和angular js
合并以开发单页应用程序。使用IPFS
设置的节点群与我的服务器(通过设计)有一条开放的通信线路。基于通过通信线路发送到我的服务器的数据包,我需要通过index.html
向用户传达消息。
答案 0 :(得分:2)
我认为你的方法是错误的:在服务器端,你应该不操纵UI和DOM ...
您应该只执行 server 活动(更新数据库,发送电子邮件,...,返回静态页面)。
然后,您可以为客户端调用脚本输出结果(JSON / XML / ...格式)以进行读取。
在OP编辑之后,我理解的是他希望服务器推送到客户端 要获得服务方面的推动,您应该在客户端民意调查 在控制器中:
getServerState(function(status) {
$scope.foo = status; // changes to `foo` $scope variable will reflect instantly on the client
});
以这种方式消费:
app.post('/receiveData', function(req, res) {
var data = req.body.data; // assume data is a boolean
res.end(JSON.stringify(data);
});
并且,服务器端:
spring-context-support