用angularjs写的前端代码,后台用nodejs的web框架express。为实现ajax,前端使用$http,测试代码大致如下:
$http.get('https://localhost:8888/'
).success(function(data, status, headers, config){
alert(data);
}).error(function(data, status, headers, config){
alert(status);
})
后台主要express代码:
app.get('/', function(req, res){
console.log('receive a message.');
res.send({"I am a message"});
});
还有些创建服务器的代码已省去。。
仅仅为了测试而已,但却一直无法做到交互,看过官网的API,应该没错的。不止是get,post也一样没用,服务器提示的确收到了来自客户端的请求,但服务器端返回的数据却没被前端获取。不过在浏览器中键入https://localhost:8888/,请求后浏览器收到了I am a message的返回信息。我觉得是我的获取返回数据的方法有错,可能那里的概念搞错了把。。
刚刚接触express和angular,想知道这两者间的数据交互方式。能实现双向发送,服务器与客户端都能主动向另一方发送数据,但不能用socket,我知道ajax能做到。。求轻喷~~
PHP中文网2017-04-10 13:15:04
首先,angular的http的路径不需要写完整的,只要写$http.get('/').success().error()即可.
其次,res.send({"I am a message"});{"I am a message"}这个数据不是一个正确的json数据,应该返回{message:'I am a message'},然后在在$http的success函数里面使用alert(data.message)来获取json的message属性.
黄舟2017-04-10 13:15:04
1 呵呵 楼主一行代码写错了呵
res.send({"I am a message"}); (javascript 没有这样的写法{“xxx”}) 语法都写错了
应该是 res.send({title:"I am a message"}); 后端要返回一个对象啊
然后前端 就可以alert(data.title);就可以了
2 如何提交数据? angular文档写的不好 没有例子
get : 提交数据
$http
.get('accept.php', {
params: {
source: link,
category_id: category
}
})
.success(function (data,status) {
$scope.info_show = data
});
post : post提交数据
$http.post("/handle/post", {
foo: "FOO",
bar: "BAR"
}).success(function (data, status, headers, config) {
// TODO
}).error(function (data, status, headers, config) {
// TODO
});
同时还要注意一个问题 如果后端是PHP的话
http://stackoverflow.com/questions/17225088/http-get-parameters-does-not-work
http://stackoverflow.com/questions/11442632/how-can-i-post-data-as-form-data-instead-of-a-request-payload