我正在尝试获取ajax调用我的节点js服务器并将json主体返回给客户端。
这是我的ajax呼叫代码。
self.information = function() {
$.ajax({
type: 'GET',
url: 'http://localhost:3000/getIOT',
contentType: 'application/json; charset=utf-8'
})
.done(function(result) {
console.log(result);
})
.fail(function(xhr, status, error) {
console.log(error);
})
.always(function(data){
});
}
}
这是节点js代码。
app.get('/getIOT', function (req, res , err) {
request({
'auth': {
'user': 'masnad',
'pass': 'whatstodaysrate',
'sendImmediately': true
},
url: 'https://get.com/getAuroraRate?Amount=1000',
method: 'GET',
}, function (error, request, body) {
console.log(body);
return response.end(JSON.stringify(body));
})
});
我得到的错误是net :: ERR_CONNECTION_REFUSED,并且正文不会返回到ajax调用。
/Users/nihit/Documents/node/multiple-js/server/server.js:36
return response.end(JSON.stringify(body));
^
ReferenceError: response is not defined
at Request._callback (/Users/nihit/Documents/node/multiple-js/server/server.js:36:20)
at Request.self.callback (/Users/nihit/Documents/node/multiple-js/node_modules/request/request.js:186:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:192:7)
at Request.<anonymous> (/Users/nihit/Documents/node/multiple-js/node_modules/request/request.js:1081:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:189:7)
at IncomingMessage.<anonymous> (/Users/nihit/Documents/node/multiple-js/node_modules/request/request.js:1001:12)
at Object.onceWrapper (events.js:291:19)
at emitNone (events.js:91:20)
不确定我做错了什么。
答案 0 :(得分:2)
你有一个拼写错误:response
应该是res
app.get('/getIOT', function (req, res , err) { // <-- response is 'res'
request({
'auth': {
'user': 'masnad',
'pass': 'whatstodaysrate',
'sendImmediately': true
},
url: 'https://get.com/getAuroraRate?Amount=1000',
method: 'GET',
}, function (error, request, body) {
console.log(body);
return res.end(JSON.stringify(body)); // <-- res
})
});
<强>附录:强>
根据您在下面的评论,可以对您的请求进行一些清理:
$.ajax({
type: 'GET',
url: 'http://localhost:3000/getIOT',
dataType: 'json', // <-- add this
contentType: 'application/json; charset=utf-8' // <-- remove this
})
.done(function(result) {
console.log(result);
})
.fail(function(xhr, status, error) {
console.log(error);
})
.always(function(data){
});
<强>解释强>
dataType
告诉jQuery将返回的数据解析为JSON。contentType
告诉服务器您发送的数据是
JSON,但您没有发送有效负载,因此您不需要在GET请求中使用此功能。