【问题标题】:How to send post request to server.js in cloud9如何将发布请求发送到 cloud9 中的 server.js
【发布时间】:2016-09-04 20:54:00
【问题描述】:

您好,我正在学习 cloud9 上的平均堆栈。

我已经到了尝试将变量发送到我的 node.js 服务器的地步,但我不确定我的服务器是否正在接收它。我的发布请求代码是否有任何明显错误?

app.js(前端角度)

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

有谁知道我为什么会收到错误消息?我的一部分认为我弄错了云 9 服务器 url,但我不确定......如果有人能帮我解决这个问题,那就太棒了!

【问题讨论】:

    标签: javascript angularjs node.js mean-stack cloud9-ide


    【解决方案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 提供客户端和服务器之间的实时连接:)

    【讨论】:

    • 谢谢! socket.io 现在好像挂了,但我一定会试试的
    猜你喜欢
    • 2019-05-17
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 2020-04-25
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    相关资源
    最近更新 更多