使用JavaScript获取JSON结果集

时间:2018-10-27 21:11:21

标签: javascript json html5 drupal cors

我有一个安装了JSONAPI(8.2)的Drupal网站

当我访问http://example.org/jsonapi/node/mycategory时,我在浏览器中获得JSON响应,其中包含2个结果,其中包含应有的所有信息,因此我知道该链接有效并且该信息可公开获得。

现在我要用结果填充表格,所以我制作了这个JS

$(document).ready(startApp);

function startApp() {
  loadNews()
}

function loadNwes() {
  $.ajax({
    url: "http://example.org/jsonapi/node/mycategory",
    type: "GET",
    dataType: "JSON",
    data: {},
    async: true,
    success: function(res) {
      console.log(res);
      resultado = res;

      for (var i = 0; i < resultado.length; i++) {
        $("#listaResults").append("<li> hardcode res</li>");
      }
      $("#listaResultados").listview('refresh');
    }
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Then in my index.HMTL file I have this

<!DOCTYPE html>
<!--
    To change this license header, choose License Headers in Project Properties.
    To change this template file, choose Tools | Templates
    and open the template in the editor.
    -->
<html>

<head>
  <title>TODO supply a title</title>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
  <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
  <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
  <script src="js/ClientServicios.js" type="text/javascript"></script>
</head>

<body>
  TEST
  <div role="main" class="ui-content">
    <ul id="listaResults" data-role="listview" data-inset="true">
      <li>Resultado hardcode</li>
    </ul>
  </div>
</body>

</html>

启动页面时,我看到的是1个硬编码的结果,但没有其他显示,如果我进入浏览器控制台,我会看到

  

跨域请求被阻止:“同源起源”策略禁止读取http://example.org/jsonapi/node/mycategory处的远程资源。 (原因:CORS标头“ Access-Control-Allow-Origin”缺失)

谷歌搜索,我发现了这个解决方案https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin

但是,第一次我编辑了.htaccess,但是什么也没有发生,并且遇到了同样的错误,但是,当我通过浏览器访问JSON时,它就起作用了。

为什么在使用JavaScript时JSON不可用?如何解决此问题?

0 个答案:

没有答案