如何使用jQuery $ .ajax获取json文件?

时间:2016-09-17 19:23:28

标签: javascript jquery json ajax

我正在进行一些大学考试测试,要求我从对象中的href的url获取JSON文件。在此之后,我需要使用JSON文件中的信息动态更改html,所以我想我需要使用$ .ajax()或$ .get()方法。

我在堆栈溢出时发现了几个代码,但似乎没有什么对我有用,我可以让我的代码只使用$ .load()方法,而其他方法什么也不做,也就是.addClass(),. removeClass()和event.preventDefault()工作正常。

这是我的代码: js - >在页面开头的脚本标记之间:

    $(document).ready(function()
    {
     $("nav li a").click(function(event)
     {
      $("nav li a").not(this).removeClass("active");
      $(this).addClass("active");


      $("#ris").load($(this).attr('href')); //this work

      $.ajax({url: $(this).attr('href'), dataType: "json",  //this give the alert
       success: function(result)
        {$("#ris").html(result);},
       error: function(){alert("Error");}
      });

      $.get($(this).attr('href'), function(json) { //this doesn't work
          $("#ris").html(json);
      });

      $.getJSON($(this).attr('href'), function(json){ //this doesn't work
        $("#ris").html(json);});

      event.preventDefault();
    });
  });

html:我只在这里放置导航项,#ris位于页面末尾

  <nav>
    <li><a href="./Asia.json">Asia</a></li>
    <li><a href="./Europa.json">Europa</a></li>
    <li><a href="./America.json">America</a></li>
    <li><a href="./Africa.json">Africa</a></li>
  </nav>

现在我只是将结果放在#ris中,看它是否有效。但我无法理解为什么我不能用任何方法进行调用。

编辑:服务器永远不会收到JSON文件的GET请求。 (服务器日志)

1 个答案:

答案 0 :(得分:0)

您应该发布像api这样的数据并阅读如下所示的响应;

$.post("your_json_response_address", {"you_can_post":"anything"}, function(data){
    console.log(data);
    $("#ris").html(data);
    //code what you want...
})