AJAX请求在家工作,但不在我的学校

时间:2016-12-13 09:28:41

标签: javascript jquery ajax cdn

我不知道我的代码是否有错误,或者与我的学校互联网有关。在家里,代码工作' (通过作品,我的意思是至少显示来自api的信息)但是在学校我什么都没得到。这是我的codepen。谢谢你的帮助!

$(document).ready(function() {
  $("#searchBtn").click(function() {
    var $theData = $("#theData");
    $.ajax({
      url: 'http://en.wikipedia.org/w/api.php',
      data: {
        action: 'opensearch',
        limit: 10,
        namespace: 0,
        search: $("#search").val(),
        format: 'json'
      },
      dataType: 'jsonp',
      success: function processResult(apiResult) {
        var html = "";
        $.each(apiResult, function(i, apiResult) {
          var keys = Object.keys(apiResult);
          html += "<div>";
          keys.forEach(function(key) {
            html += "<strong>" + key + "</strong>: " + apiResult[key] + "<br>";
          });
          html += "</div><br>";
        });
        $theData.html(html);
        console.log(JSON.stringify(apiResult));
        console.log(html);
      }
    });
  });
});

2 个答案:

答案 0 :(得分:1)

您的学校似乎正在阻止https://cdnjs.cloudflare.com

您可以尝试其他CDN,例如https://developers.google.com/speed/libraries/#jquery

答案 1 :(得分:0)

它会起作用,但您正在通过HTTP和HTTPS。

当您从HTTPS网站运行此功能时,您将无法发布到HTTP网站。更多信息:https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content

将JS代码中的URL更改为https,它应该可以正常工作。

下次,查看开发人员工具栏,您应该会看到错误消息,解释我在这里所做的事情;

  

混合内容:&#39; https://codepenDOTio/johnthorlby/pen/RoJKVz&#39;是通过HTTPS加载的,但请求了一个不安全的脚本&#39; http://en.wikipedia.org/w/api.php?callback=jQuery3100(...)ction=opensearch&limit=10&namespace=0&search=hodor&format=json&_=1481621576214&#39;。此请求已被阻止;内容必须通过HTTPS提供。