2
我試圖調用我的nodejs服務器並顯示來自angularjs應用程序的結果。我一直在關注一個例子,但是當我更改我的代碼的示例代碼時,它總是調用錯誤回調。我有一種感覺,我的服務器出了問題,但是我不能讓它工作,沒有快速或其他庫的nodejs,以及所有其他答案都使用express。我如何使它不使用快遞工作?NodeJS返回JSONP不使用快遞
的代碼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();
}
);
Im相當肯定我必須包裝JSON結果的功能,但我不知道怎麼了,我甚至不能知道該功能的名稱,因爲這是我在我的服務器上獲取:
路徑:/ selectAllLocations PARAMS:{「callback」:「angular.callbacks._0」}
我明白即時通訊返回純json,我可以在我的迴應中看到它在鉻中,所以,有一些阻止它從調用成功功能。有人能指出我正確的方向嗎?
你是對的!工作! {「callback」:「angular.callbacks._0」}我得到的是,angularjs如何重命名回調,並且在接收到的參數中它的另一個值,現在這一切都合情合理。我是否必須將所有答案都包含在該函數中,即使我不返回json? – Toddy
此外,即時通訊開始質疑,如果我沒有使用像表達式那樣使用nodejs框架,因爲這裏的所有問題都在使用它。 – Toddy
@Toddy因爲你正在編寫一個web服務,我建議使用[restify](http://mcavage.me/node-restify/),它類似於表達式,但不太適合構建網頁,更多的是面向朝着服務。至少,這將會照顧到輸出格式正確(回調和所有)給你。 – Dan