我對Node應用程序有點麻煩,問題是:我在網站「x」中有一個腳本,並且此腳本調用另一個服務器上的函數(如分析),我用ajax調用函數,當函數返回數據時,發生一些奇怪的現象,當我使用Chrome瀏覽器中的Developer Tools檢查網絡時,回調顯示了我想要的JSON格式的響應,但沒有向我顯示數據。我的代碼:如何從GET請求返回數據與node.js
var xml2js = require('xml2js'),
http = require('http'),
request = require('request');
var parserController = function (aw){
console.log('Parse Controller load');
aw.get('/ads/:keyword/:sid/:pid/:count', function (req,res){
res.setHeader('Content-Type', 'application/json');
request('http://'+req.params.sid+'.'+req.params.pid+'.autoweb-xml.com/feed?&sid='+req.params.sid+'&auth=2Al5&subid=&q='+req.params.keyword+'&ip=127.0.0.1&ua=Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64;%20rv:26.0)%20Gecko/20100101%20Firefox/26.0&ref=awebads.lan&count='+req.params.count+'&state=&city=', function (error, response, body) {
if (!error && response.statusCode == 200) {
var parser = xml2js.parseString;
var data = '';
parser(body,{explicitRoot : false}, function (err, result){
if(!err){
data = result;
dataP=data.results[0];
dataS=dataP.sponsored[0];
console.log(dataS.listing);
return res.send(dataS.listing);
}
else
{
console.log(err);
}
})
}
})//en del request
});
};
和我通話功能是:
var xhr = $.ajax({
type:'GET',
url:'http://HOST/ads/'+configParams.keyword+'/'+configParams.envSource+'/'+configParams.envPublisher+'/'+configParams.envCount,
dataType : 'jsonp',
async: false,
crossDomain : true
})
xhr.done(function (data){
console.log(data);
data.forEach(function(item){
window.collections.ads.add(item);
});
}).fail(function (err) {
//console.log('failed');
//console.log(err)
});
當我顯示在控制檯中的數據,這部分告訴我了XMLHttpRequest,在此先感謝您的幫助
是否有任何錯誤訊息?它可能是一個同源 - 政策問題嗎?或者是服務器的第一個代碼,另一個服務器上的第二個代碼? –