我不知道我的代码是否有错误,或者与我的学校互联网有关。在家里,代码工作' (通过作品,我的意思是至少显示来自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);
}
});
});
});
答案 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提供。