【发布时间】:2013-03-18 11:38:14
【问题描述】:
我只想在服务器端脚本上做类似$.get/post 的事情。有没有更好的方法而不是包含整个 jQuery?我也不喜欢手动使用凌乱的get xml http请求东西。
【问题讨论】:
标签: javascript jquery ajax node.js
我只想在服务器端脚本上做类似$.get/post 的事情。有没有更好的方法而不是包含整个 jQuery?我也不喜欢手动使用凌乱的get xml http请求东西。
【问题讨论】:
标签: javascript jquery ajax node.js
node.js中jquery.ajax的等价物是request
它位于节点核心 http 之上,使事情更易于使用。允许回调和流式请求。
例子:
var request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Print the google web page.
}
})
request.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png'))
【讨论】:
需要http。如他们的文档中所述,您可以提出如下请求:
var options = {
hostname: 'www.google.com',
port: 80,
path: '/upload',
method: 'POST'
};
var req = http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
// write data to request body
req.write('data\n');
req.write('data\n');
req.end();
还有一个简单的GET:
http.get("http://www.google.com/index.html", function(res) {
console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
您还可以查看Express.js 和request,除了jquery 之外,您还可以使用很多选项。
【讨论】: