我根据文档设置了一个基本的 Node.js http 服务器,我正在尝试创建一个非常简单的 Web 服务,我可以使用 Javascript (AJAX) 与之通信,然后我将连接到 Arduino。这是一个测试片,我可能会走上别的路,但事实证明这很有趣。无论如何,这里是服务器端的 javascript:
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# 吗?
干杯。