JSON请求适用于Javascript但不适用于Nodejs(statusCode:403)

时间:2015-11-24 22:06:32

标签: javascript jquery json node.js

我想在NodeJS中请求一个简单的JSON文件。使用Javascript和jQuery,它就像一个魅力:

$(document).ready(function() {
  $.getJSON('https://www.younow.com/php/api/broadcast/info/curId=0/user=Peter', function(json) {
      if (json["errorCode"] > 0) {
        console.log("Offline");
        $('#ampel').addClass('red');
      } else {
        console.log("Online");
        $('#ampel').addClass('green');
      }
  });
})

但是我不能让它与NodeJS一起使用:

var request = require('request');

var options = {
  url: 'https://www.younow.com/php/api/broadcast/info/curId=0/user=Peter',
  headers: {
    'content-type': 'application/javascript'
  }
};

function callback(error, response, body) {
  console.log(response.statusCode);
}

request(options, callback);

StatusCode始终为403,我无法处理数据。有人可以帮助我,所以我可以得到与jQuery相同的结果吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我能够在Mike McCaughan的帮助下找到解决方案:

我必须发送一个不同的用户代理来获得200响应。代码现在看起来像这样:

var options = {
  url: 'https://www.younow.com/php/api/broadcast/info/curId=0/user=',
  headers: {
    'User-Agent': 'request'
  }
};

function callback(error, response, body) {
  var str = JSON.parse(body);
  if (str.errorCode > 0) {
    ...
  } else {
    ...
  }
}

request(options, callback);