javascript - javascript 中的 GET 请求到 NodeJS

标签 javascript jquery node.js get request

我正在尝试从 Web 上的 javascript 代码到 Node.js 中的服务器进行简单的连接(请求 - 响应)。

我尝试将请求发送为 follows :

var request = new XMLHttpRequest();
request.open('GET', 'http://localhost:4444/', false);
request.send(); 

if (request.status === 200) {
  console.log(request.responseText);
}

运行此代码时,我在 FireBug 中遇到错误

我继续查找,发现这个方法只是对同一个域进行GET请求。要发出跨域请求,我们必须使用其他策略。

我找到了jQuery method ,看来我的方向是正确的:

$.get(
    'http://localhost:4444/',
    function(data) {
        alert("sucess"); 
        //Do anything with "data"
    }
);

在这种情况下,我得到相同的响应 without the error .

看起来它有效,但“警报”消息从未显示!会发生什么?我做错了什么?

Node.js 服务器代码是:

var http = require("http");

http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/html"});
    response.write("Response");
    response.end();
}).listen(4444);

最佳答案

所以您遇到了跨域问题。您有几个选择:

1) 由于您使用的是 Node,因此请使用 socket.io 。它符合跨域标准。

在客户端:

<script src="Full path to were socket IO is held on your server//socket.io.js"></script>
<script>
    var socket = io.connect();

    socket.on('some_callback', function(data){
        // receive data
    });

    socket.emit('some_other_callback', {'data': value}); //send data
</script>

服务器:

var io = require('socket.io').listen(server);

// define interactions with client
io.sockets.on('connection', function(socket){
    //send data to client
    socket.emit('some_callback', {'data': value});

    //recieve client data
    socket.on('some_other_callback', function(data){
        //do something
    }); 
});

2) 由于您只想使用 GET,因此可以使用 JSONP

$.getJSON('url_to_your_domain.com/?callback=?&other_data=something,
    function(data){
        //do something
    }
);

这里我们传递正常的 GET 参数以及回调=?。您将从服务器返回以下内容:

require('url');
var r = url.parse(req.url,true);
r.query.callback + '(' + some JSON + ')'

3) 如果您不关心所有浏览器兼容性,您可以使用 CORS: 你可以看到一个比我能写的更好的例子 Here

关于javascript - javascript 中的 GET 请求到 NodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874746/

相关文章:

android - 在 meteor 上安装 android-sdk - 已下载但在安装时出现错误

node.js - 使用 node.js 的 Mongoose 中的日期转换错误

javascript - 无法从数组(Javascript)中获取最小值?

javascript - 如何检查多步表单中输入值的字段?

javascript - 自适应随机化算法

javascript - 滑动div左右过渡

php - 如何从调用 jQuery 函数的链接获取参数?

javascript - websocket 问题 : cannot connect to node. js 服务器

javascript - Chart.js - 未捕获的 TypeError : Object. defineProperty 在多个图表的非对象上调用

javascript - 如何在OnClick函数中编写jquery脚本?