我試圖從客戶端Ajax調用發送到我的服務器與數據有關的輸入參數。當我嘗試這樣做時,我只能看到服務器控制檯中的數據,而不是瀏覽器中的數據。本地Ajax調用提供任何響應文本
在這裏,在客戶端是Ajax調用與「Peter_Abelard」設置爲演示稱號。這個電話給了我一個200好的狀態,但是響應文本是空的。
$.ajax({
type: "GET",
url: 'http://localhost:3000/api/wiki/Peter_Abelard',
async: false,
datatype: 'json',
success: function(response){
console.log(response);
}
});
在服務器端的代碼我有
function getData(name){
wikipedia.page.data(name, { content: true }, function(response) {
console.log(JSON.stringify(response));
var dad = JSON.stringify(response);
fs.writeFile("wikip.txt", dad, function(err) {
if (err) throw err;
console.log('It\'s saved!');
});
return dad;
});
}
app.get('/api/wiki/:que', function(req, res) {
var queryd = req.params.que;
getData(queryd);
res.send(getData(queryd));
});
我相信這個問題有一些與線res.send(getData(queryd))
,但我不知道要嘗試什麼。如果我是正確的,這行應該發送正確的文本給客戶端。
從'的getData(名稱)',而不是返回響應返回'dad'因爲在阿賈克斯你所要求的,「JSON」,但你不發送一個 –
只是去嘗試和responseText的仍是空白。這可能是正確的道路上的一步。 – chackerian
這裏有些事情是錯誤的。首先,你的getData()函數是異步的,所以它不可能返回結果。其次,你從實際的'getData()'函數中沒有返回任何東西。我建議你閱讀這個[如何從異步調用返回響應](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call )。 – jfriend00