嗨,我正在学习cloud9上的平均堆栈。
我已经到了我试图将变量发送到我的node.js服务器的地步,但我不确定我的服务器是否正在接收它。我的帖子请求代码是否有任何明显错误?
app.js(frontend angular)
console.log('begin');
var http = new XMLHttpRequest();
var params = "text=stuff";
http.open("POST", "https://new-backup.splacorn.c9.io/myApp/server/server.js/", true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {
console.log('onreadystatechange');
if (http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
else {
console.log('readyState=' + http.readyState + ', status: ' + http.status);
}
}
console.log('sending...')
http.send(params);
console.log('end');
这是我得到的控制台响应:
begin
sending...
end
POST https://new-backup.splacorn.c9.io/myApp/server/server.js/ net::ERR_INSECURE_RESPONSE$scope.addNewUser
onreadystatechange
readyState=4, status: 0
我相信我得到的错误归因于这一行:
http.open("POST", "https://new-backup.splacorn.c9.io/myApp/server/server.js/", true);
一旦http.send(params);
调用它。
这是server.js文件(后端)
var express = require('express');
var fs = require('fs');
var app = express();
var bodyParser = require('body-parser')
app.use(express.bodyParser());
app.post('/', function(req, res){
console.log('POST /');
res.writeHead(200);
res.end('this is from the server');
});
var port = 3000;
app.listen(port);
console.log('Listening at http://localhost:' + port);
有谁知道为什么我收到错误?我的一部分认为我得到的云服务器网址错误,但我不确定......如果有人能帮我解决这个问题就太棒了!
答案 0 :(得分:1)
我想改用socket.io。 以下是您如何做到这一点的一个小例子: - 客户端代码:
var io = io("http://localhost:1337");
io.emit('give me some data',{test:'testing socket.io'});
io.on('got the data',function(data){
console.log(data.test);
});
服务器端代码:
var app = require('express').createServer();
var io = require('socket.io')(app);
io.on('connection',function(socket){
socket.on('give me some data',function(data){
socket.emit('got the data',data);
}
app.listen(1337);
你可以获得socket.io here 它们既有客户端也有服务器端代码。希望你明白我的意思。我在打电话,所以不能打字。而且,socket.io提供客户端和服务器之间的实时连接:)