如何从外部URL获取JSON数据

时间:2015-04-01 10:42:05

标签: javascript html json

我希望能够从一个小页面阅读信息。

我有一个显示以下信息的JSON服务的地址:

enter image description here

我希望我能保留出现的号码。

我测试了这个example并且工作正常,但是当我尝试使用我的网址时没有任何反应。我不知道我是否正确理解这个问题,但我希望有人能帮助我。

如果有任何问题,我会尽量解释。

我现在要为此给您带来的不便表示歉意。

我使用的代码

var getJSON = function(url) {
  return new Promise(function(resolve, reject) {
    var xhr = new XMLHttpRequest();
    xhr.open('get', url, true);
    xhr.responseType = 'json';
    xhr.onload = function() {
      var status = xhr.status;
      if (status == 200) {
        resolve(xhr.response);
      } else {
        reject(status);
      }
    };
    xhr.send();
  });
};

getJSON('http://MYADDRESS/json.do?_ULN[1]').then(function(data) {
    alert('Your Json result is:  ' + data.result); //you can comment this, i used it to debug

    result.innerText = data.result; //display the result in an HTML element
}, function(status) { //error detection....
  alert('Something went wrong.');
});

2 个答案:

答案 0 :(得分:1)

出于安全考虑,你不能这样做。有关JavaScript的信息,请参阅same origin policy

有一些解决方法可以利用浏览器错误或角落案例,但不建议使用它们。

最好的方法是使用服务器端代理接收Ajax请求,然后将HTTP请求发送到其他服务器。这应该通过清理输入并将发送的请求类型和所联系的服务器列入白名单来仔细实施。

答案 1 :(得分:1)

由于浏览器的同源策略存在您的问题。

您的问题的一个解决方案是使用JSON-P或CORS方法。这个方法在这里有很好的解释:http://json-p.org/和这里:http://www.sitepoint.com/jsonp-examples/