如何在 Node.js 中集成 ajax?
Posted
技术标签:
【中文标题】如何在 Node.js 中集成 ajax?【英文标题】:How to integrate ajax in Node.js? 【发布时间】:2012-01-02 23:42:04 【问题描述】:我已经使用 Node.js 概念测试了 Hello world 程序,它运行良好。
文件详情:
index.html socket.js
在命令提示符下运行:node socket.js
我已经尝试使用相同的 hello world 文件在 node.js 中调用 ajax,并按照以下链接中的代码进行操作,
how to use jQuery ajax calls with node.js
server.js
var http = require('http');
http.createServer(function (req, res)
console.log('request received');
res.writeHead(200, 'Content-Type': 'text/plain');
res.end('_testcb(\'"message": "Hello world!"\')');
).listen(8080);
index.html
<script src="/socket.io/socket.io.js"></script>
<script>
$(document).ready(function()
$.ajax(
url: 'http://localhost:8080/',
dataType: "jsonp",
jsonpCallback: "_testcb",
cache: false,
timeout: 5000,
success: function(data)
$("#test").append(data);
,
error: function(jqXHR, textStatus, errorThrown)
alert('error ' + textStatus + " " + errorThrown);
);
);
</script>
<div id="test"></div>
我在命令提示符下使用以下方法运行
节点节点.js
然后在浏览器中运行,
http://localhost:8080
然后,它提供以下输出
_testcb('"message": "Hello world!"')
但我无法得到正确的结果,请解释一下,如何将 node.js 中的 ajax 与示例代码集成?
感谢您的帮助。
【问题讨论】:
您可以在此处粘贴您当前的代码吗?那么我们可以提出一个更好的问题。 我已关注此链接中的代码***.com/questions/5373987/… 我提醒,代码你已经完成了。index.html
和 socket.js
文件中的详细信息
请检查我的描述。感谢您的帮助。
我可能是错的,但我不认为 jQuery 和 node.js 是一个很好的匹配。像大多数 js 库一样,jQuery 依赖于诸如窗口对象和其他始终存在于浏览器中的内置对象之类的东西,因此代码不会被强化以测试它们的存在。警告:我对 Node.js 的经验为零
【参考方案1】:
将您的 writeHead 函数更改为输出 JSON 而不是纯文本:
res.writeHead(200, 'Content-Type': 'application/json');
【讨论】:
【参考方案2】:请注意,success
和 error
在 jQuery 中已弃用。请改用.then
和类似的promise/defered 相关方法。
另外,使用express
NPM 库而不是普通的 node.js Web 服务器 - 它为您在服务器上发送和接收 JSON 完成了大部分工作。
【讨论】:
【参考方案3】:我尝试在 nodeJS 中实现简单的 AJAX,这是链接:nodesamples
希望对你有帮助:)
【讨论】:
以上是关于如何在 Node.js 中集成 ajax?的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 javascript 框架(如 ExtJs)创建的应用程序中集成支付网关?
如何使用 XAMPP 或 node.js 使 AJAX 在本地服务器上工作