我试图调用我的nodejs服务器并显示angularjs应用程序的结果。我一直在关注一个例子,但是当我更改代码的示例代码时,它总是调用错误回调。我觉得我的服务器有问题,但是我无法使它工作,它的nodejs没有express或其他库,所有其他答案都涉及使用express。如何在不使用快递的情况下使其工作?
angularjs中的代码,我调用服务器:
app.controller('Main', function ($scope, $http) {
$scope.init = function() {
//var api = 'http://api.trakt.tv/calendar/premieres.json/7c989229f2fa626832e7576eb59820e9/20131103/30/?callback=JSON_CALLBACK';
$http.jsonp('http://localhost:8888/selectAllLocations?callback=JSON_CALLBACK').success(function(data) {
console.log(data);
}).error(function(error) {
console.log('My error: ' + error);
});
};
});
如果我使用var api中的值,结果就可以了,调用成功,而不是我的。
这是我的nodejs服务器中的代码。
var result = sequelize.query(query, null, options, parameters)
.success(function (rows) {
if (type == 'select') {
response.writeHead(200, { "Content-Type": "application/json" });
response.write(JSON.stringify(rows));
response.end();
} else if (type == 'modify') {
response.writeHead(200, { "Content-Type": "text/html" });
response.write("Query was successful");
response.end();
}
}
).error(function (e) {
console.log("An error occured: ", e);
response.writeHead(404, { "Content-Type": "text/html" });
response.write("There was an error man, shits on fire yo ---> " + e);
response.end();
}
);
我很确定我必须将json结果包装在一个函数中,但我不知道如何,我甚至不知道函数名称,因为这是我在服务器中得到的所有内容:
路径:/ selectAllLocations params:{“callback”:“angular.callbacks._0”}
我理解我返回纯粹的json,我可以在我的回复中看到它在chrome中,所以,有一些东西阻止它调用成功函数。有人能指出我正确的方向吗?
答案 0 :(得分:4)
函数名称指定为callback
参数。
response.write(params.callback + '(' + JSON.stringify(rows) + ')');