使用原生JS **获取外部页面的源代码**?

时间:2015-01-23 16:56:38

标签: javascript

我想知道如何使用本机,无库 JavaScript获取外部页面的源代码 - 是否可能?

(注意:我正在尝试获取网页的JSON内容,如this one

我无法使用外部库,例如JQuery。


编辑 - 结果表明使用XMLHttpRequest效果很好,以及(如果我有服务器可用)我可以使用...

var my_file = <?php echo '"'.file_get_contents("file.json").'"' ?>

另外,我可以使用JSON.parse()来获取文件的内容:

// Extending from the previous block of code
var my_json = JSON.parse(my_file);

1 个答案:

答案 0 :(得分:2)

您应该直接使用XMLHttpRequest(又名XHR)。

&#13;
&#13;
var url = "http://scratch.mit.edu/api/v1/project/1000/?format=json";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", url, false);
xmlHttp.send();
alert(xmlHttp.responseText);
&#13;
&#13;
&#13;

上面的简单示例将执行同步请求,这将阻止您的UI直到I / O完成。您也可以异步进行此调用,在I / O完成时处理结果。

&#13;
&#13;
function success(responseText) {
  alert(responseText);
}

function error(statusText) {
  alert("Error: " + statusText);
}

var url = "http://scratch.mit.edu/api/v1/project/1000/?format=json";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", url, true);
xmlHttp.onload = function(e) {
  if (xmlHttp.readyState === 4) {
    if (xmlHttp.status === 200) {
      success(xmlHttp.responseText);
    } else {
      error(xmlHttp.statusText);
    }
  }
};
xmlHttp.onerror = function (e) {
  error(xmlHttp.statusText);
};
  
xmlHttp.send();
&#13;
&#13;
&#13;