jquery - Node.js 为什么我无法从 HTTP 服务器获取响应文本?

标签 jquery node.js

我刚开始接触 Node.js。我有一个简单的测试设置。

    var sys = require('util'),
http = require('http'),
qs = require('querystring');

http.createServer(function (req, res) {

    if (req.method == 'POST') {
        var body = '';
        req.on('data', function (data) {
            body += data
        });

        req.on('end', function () {
            var POST = qs.parse(body);
            console.log(POST);
        });
    }


    res.writeHead(200, {'Content-Type': 'text/plain'});

    res.end('success');


}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

我的测试客户端JS

 $.post("http://127.0.0.1:1337", "This is my POST data.", function (data) {
        alert(data);
    });

    $.get("http://127.0.0.1:1337", function (data) {
        alert(data);
    });

如果我浏览到我的 HTTP 服务器正在运行的地址:http://127.0.0.1:1337我看到响应文本“成功”。

然而,当我使用 $.post 或 $.get 时,它们都成功,状态为 200 但没有响应。 $.get 和 $.post 回调函数从未被调用,我也没有看到出现警报。我做错了什么?

谢谢!

最佳答案

这对我来说似乎很好用。你如何测试?

尝试 curl :

curl -XGET http://localhost:1337/

并发布:

curl -XPOST -d foo=bar http://localhost:1337/

需要注意的一件事是,无论 POST 的输入是什么,您如何编写返回“成功”的代码。如果您需要处理/查看先发布的数据,则需要在调用 req.on('end', ...) 之后发送响应。 (或在那个函数中)。

关于jquery - Node.js 为什么我无法从 HTTP 服务器获取响应文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8336560/

相关文章:

javascript - 在一个 img 标签中一个接一个地加载两个图像

javascript - Wordpress 中的下拉菜单

mysql - NodeJS 无法连接到 Docker 容器内的 MYSQL 最新版本

javascript - PythonJS 本地服务器

node.js - Nodejs中的递归重试功能

node.js - 使用 Microsoft Graph 在 Teams 中创建 session 时出现 "Forbidden"错误

mysql - 如何从 API Controller 中分离出 MySQL?

jquery - 不听我的 if 语句吗?

jquery - 单击图像不会在 chrome 中加载

javascript - "return false;"有什么作用?