我有一個基本的Node.js http服務器設置爲每個文檔,我試圖創建一個非常簡單的Web服務,我可以與Javascript交談(AJAX ),然後我將連接到Arduino。這是一個測試,我可能會走上別的道路,但事實證明這很有趣。總之,這裏是服務器端JavaScript:創建一個簡單的Node.js Web服務用於AJAX
var http = require('http');
var _return = 'Bing Bong';
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'application/jsonp'});
//do stuff
res.end('_return(\'Hello :-)\' + _return)');
}).listen(process.env.VMC_APP_PORT || 1337, null);
這是客戶端:
function experimentFive(node) {
console.log('X5 Func started');
console.log('Calling Node.js service');
var nodeURL = node;
$.ajax({
url: nodeURL,
dataType: "jsonp",
jsonpCallback: "_return",
cache: false,
timeout: 50000,
success: function(data) {
console.log('Data is: ' + data);
$("#nodeString").text(" ");
$("#nodeString").append(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('error : ' + textStatus + " " + errorThrown);
}
});
}
experimentFive('http://fingerpuk.eu01.aws.af.cm/');
這工作,我得到的數據傳回,但不是我所期待。我希望能夠做的是改變一些數據服務器端並接收它。我找回res.end加上的字符串:
function() {
responseContainer = arguments;
}
而不是變量的數據。無論我如何嘗試恢復該數據,它都是未定義的或此響應。
從研究我認爲該變量沒有它的數據集在回調觸發之前,所以它是空的。但是如果我設置了初始值,那麼數據仍然是未定義的。
我在這裏錯過了很簡單的東西嗎?我應該回到C#嗎?
乾杯。
你能準確地說明你回來的數據嗎?您可能想再看看我們的'res.end'調用的格式。 – travis