2016-05-10 7 views
1

Hallo Ich lerne den mittleren Stapel auf cloud9.So senden Sie Post-Anfrage an server.js in cloud9

Ich bin an den Punkt gekommen, an dem ich versuche, Variablen an meinen node.js Server zu senden, aber ich bin mir nicht sicher, ob mein Server es abholt. Gibt es offensichtliche Fehler in meinem Postanforderungscode?

app.js (Frontend Winkel)

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'); 

dies ist die Konsole Antwort, die ich erhalte:

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 

Ich glaube, dass der Fehler, die ich auf dieser Linie zugeschrieben bin immer:

http.open("POST", "https://new-backup.splacorn.c9.io/myApp/server/server.js/", true); 

einmal http.send(params); nennt es. Hier

ist die server.js Datei (Backend)

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); 

Weiß jemand, warum ich den Fehler zu bekommen? Ein Teil von mir denkt, dass ich die Server-URL der Cloud 9 falsch verstanden habe, aber ich bin mir nicht sicher ... Wenn mir jemand helfen könnte, das herauszufinden, wäre das großartig!

Antwort

1

Ich möchte stattdessen socket.io verwenden. Hier ist ein kleines Beispiel dafür, wie Sie es tun können: - Client-Seite Code:

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); 
}); 

Server-Side-Code:

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); 

Sie können socket.io bekommen here sie beide Client-Seite als Standard sowie als serverseitiger Code. Ich hoffe du hast verstanden. Ich war am Telefon und konnte nicht viel tippen. Und auch, Socket.io bietet Echtzeit-Verbindung zwischen dem Client und dem Server :)

+0

Vielen Dank! socket.io scheint jetzt down, aber ich werde es definitiv versuchen –