【发布时间】:2013-03-10 02:43:01
【问题描述】:
使用 RESTful api,当我在浏览器中的 96.126.111.211/getLeaderBoard 访问它时
它工作正常,并为我提供了我的 mongo 数据库中的 JSON 数据。
虽然当我尝试像 http://jsfiddle.net/yVQ5T/ 这样的 jquery ajax 请求时,我得到一个 jsonp 错误
错误:没有调用 jQuery171037622810900211334_1363808084624
这是服务器端的代码
getLeaderBoard(req, res)
{
this.db.collection(this.settings.userTable, function(err, collection) => {
collection.find().toArray(function(err, items) {
res.writeHead(200, {'Content-Type': 'application/javascript'});
res.write(JSON.stringify(items));
res.end();
});
});
}
【问题讨论】:
-
您使用的是 Express 还是我只是从标题和标签中提取出来的?如果您使用 Express,您应该使用他们的高级响应功能,例如
res.json(items)或更具体地说,res.jsonp(items)应该可以解决您的问题。除非您有特殊情况,否则无需手动将数据写入 Express 的响应(或结束)。此外,Node.js 中的良好做法是在每个函数中显式返回最终语句,以确保您在预期离开时离开它。
标签: jquery ajax node.js express restful-architecture