如何消费这个API

时间:2017-09-20 16:11:22

标签: jquery ajax

我尝试使用jQuery使用此api(https://ministerio.herokuapp.com),当我运行脚本时,结果是一个空白的html页面

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>JavaScript - read JSON from URL</title>
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  </head>

  <body>
    <div class="mypanel"></div>

    <script>
      $.getJSON('https://ministerio.herokuapp.com', function(data) {     
        var text = `Indexers: ${data.Indexers}`
        $(".mypanel").html(data);
      });
    </script>
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

请求json资源时,您首先遇到No 'Access-Control-Allow-Origin' header is present on the requested resource.错误。

恭喜,您修复了资源的标题 目前尚不清楚你是否已经控制它。

现在,该资源尚未输出json 您必须管理的下一个错误是parsererror

我是怎么发现这个错误的?

我使用了.fail()回调 见CodePen

$.getJSON('https://ministerio.herokuapp.com', function(data) {     
  // Whatever you do here in case of success.

}).fail(function(request,error){
  console.log(request);
  console.log(error);
});

您希望结果为:

{"Ambiental":"1","Descripcion":"Mayormente nublado","Fecha_Actualizacion":"2017-09-21T18:09:51-05:00","Humedad":"70%","Picoyplaca":"1 - 3 - 5 - 7 - 9","Publico":"1 - 2","TasaRM":" $ 2,913.96","Temperatura":"14°"}

但是,此时此处为what your ressource outputs

<p> {&quot;Ambiental&quot;:&quot;1&quot;,&quot;Descripcion&quot;:&quot;Mayormente nublado&quot;,&quot;Fecha_Actualizacion&quot;:&quot;2017-09-21T18:09:51-05:00&quot;,&quot;Humedad&quot;:&quot;70%&quot;,&quot;Picoyplaca&quot;:&quot;1 - 3 - 5 - 7 - 9&quot;,&quot;Publico&quot;:&quot;1 - 2&quot;,&quot;TasaRM&quot;:&quot; $ 2,913.96&quot;,&quot;Temperatura&quot;:&quot;14°&quot;}

<小时/> 所以... 首先摆脱未公开的<p>标记。

您应该发布该资源代码......可能会在那里找到许多奇怪的东西。

但我非常确定下一步是将HTML entities替换为所需的真实字符。

然后使用json_encode()来回显结果,以确保如果数据来自数组(我认为这是一个PHP脚本),则确保格式正确。