使用JQuery $ .getJSON和Wikipedia API时出现问题

时间:2016-11-08 15:46:57

标签: javascript jquery wikipedia-api

所以我正在尝试访问Wikipedia API以获得免费的Code Camp项目。我尝试使用标准的Ajax接口,它没有用 - 我尝试使用.getJSON,我仍然无法让它工作。问题不在于我的按钮,链接或功能 - 按钮登录到控制台,链接,在浏览器中输入时,返回JSON数据,该功能当前是未记录的控制台日志。有时,屏幕完全空白。

此外,CodePen和我的浏览器的控制台都没有记录“工作”消息,但Stack Overflow就是这样做的。它让我发疯,因为这是超级基础。

我做错了什么? 下面是JS,CSS和HTML,this是CodePen的链接。

//ready
$(document).ready(function() {
  //jquery onclick
  $("#search").on("click", function() {
    var term = $("#term").val();
    console.log(term);
//request
$.getJSON("https://en.wikipedia.org/w/api.php?action=opensearch&datatype=json&search=" + term + "&callback=?",
      function(json) {
        console.log("worked");
      }); //end getJSON
  }); //end onclick
}); //end docready
@import url('https://fonts.googleapis.com/css?family=Arimo');

#well{
  background-color:#ededed;
}

body{
  background-color:#6b6b6b;
  text-align:center;
}
h1{
  font-family: Times, Georgia, serif;
}

h5, form{
  font-family: 'Arimo', sans-serif;
}

.result{
  background-color: WHITE;
}
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>

<div id="well">
  <header>
    <h1>Wikipedia Viewer</h1>
  </header>

  <body>
    <br>
    <div id="select">
      <h5><a href="https://en.wikipedia.org/wiki/Special:Random" title="Random Wikipedia Article" target="_blank">Click for a random article</a></h5>
      <br>
      <form>
        <input type="text" id="term" name="search" placeholder="What article?">
        <button id="search">Search</button>
      </form>
      <br>
      <h5>Or search above for a specific one</h5>
    </div>
    <ul id="results">
      
    </ul>
  </body>
</div>

1 个答案:

答案 0 :(得分:-1)

更新:很抱歉,在我发表此答案后,我发现这是一个浏览器缓存问题。问题不够明确。

  

只是因为Firefox很奇怪而且Chrome已经缓存了我的   页。

解析你在回调中调用的维基百科响应数组string input_file_name1 = "shen_test_38_30_60__78_26_38_b_100_ch1-533.0-mhz-8000.0-ksps-2016-06-20-17.24.19-utc.dat"; string input_file_name2 = "shen_test_38_30_60__78_26_38_b_100_ch2-533.0-mhz-8000.0-ksps-2016-06-20-17.24.19-utc.dat"; std::ifstream input1(input_file_name1.c_str() , std::ios::binary | std::ios::in); std::ifstream input2(input_file_name2.c_str() , std::ios::binary | std::ios::in); split(input_file_name1, '-', v); for(unsigned i=1; i < v.size(); i++) { if(v[i] == "mhz"){ f_0 = atoi(v[i-1].c_str())*1e6; } if(v[i] == "ksps"){ f_s = atoi(v[i-1].c_str()) * 1e3;// f_s = 8e6; } } double nblocks; //f_s = 8e6; nblocks = floor(10 / (262144 / f_s));

  1. json是搜索字词。
  2. json[0]数组是标题。
  3. json[1]数组是描述。
  4. json[2]数组是链接。
  5. 我误解了为什么downvote!

    这是完整的工作示例。

    json[3]
    $(document).ready(function() {
      $("#search").on("click", function() {
        var term = $("#term").val();
        //request
        $.getJSON("https://en.wikipedia.org/w/api.php?action=opensearch&datatype=json&search=" + encodeURIComponent(term) + "&callback=?",
          function(json) {
            $("#results").html("");
            $("#results").append("<span>" + json[1].length + " Search results for \"" + term + "\"</span>");
            for (var i = 0; i < json[1].length; i++) {
              $("#results").append("<li><h3><a href='" + json[3][i] + "'>" + json[1][i] + "</a></h3><p>" + json[2][i] + "</p></li>");
            }
          }); //end getJSON
      }); //end onclick
    }); //end docready
    @import url('https://fonts.googleapis.com/css?family=Arimo');
     #well {
      background-color: #ededed;
    }
    body {
      background-color: #6b6b6b;
      text-align: center;
    }
    h1 {
      font-family: Times, Georgia, serif;
    }
    h5,
    form {
      font-family: 'Arimo', sans-serif;
    }
    .result {
      background-color: WHITE;
    }
    li {
      list-style: none;
      text-align: left;
    }