【发布时间】:2018-03-24 12:41:32
【问题描述】:
实际上正在处理 FCC 挑战,我需要对 wikimedia API 进行 get AJAX 调用,但我正在努力解决。
我首先搜索并发现我需要放置一个个性化的请求标头,但我的问题仍然存在,请求似乎没有发送,因为我的“加载”事件监听器在发出请求时没有激活。我检查了我的网址,它在我的浏览器中运行良好。感谢您的帮助,这是我的代码:
// ================ AJAX GENERIC FUNCTION =============================
function ajaxGet(url, callback) {
let req = new XMLHttpRequest();
req.open("GET", url);
req.setRequestHeader( 'Api-User-Agent', 'Wiki Viewer' );
req.addEventListener("load", function () {
if (req.status >= 200 && req.status < 400) {
// Call the callback function and pass it the response
callback(req.responseText);
} else {
console.error(req.status + " " + req.statusText + " " + url);
}
});
req.addEventListener("error", function () {
console.error("Erreur réseau avec l'URL " + url);
});
req.send(null);
}
// ================ FUNCTION(S) =============================
function displayResult() {
let urlToSearch = "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + searchInput.value;
ajaxGet(urlToSearch, function (response) {
console.log(response);
});
}
// ================ GLOBAL VARIABLES =============================
let searchBtn = document.getElementById("searchBtn");
let searchInput = document.getElementById("searchInput");
// ================ EVENT LISTENNER =============================
searchBtn.addEventListener("click", displayResult);
【问题讨论】:
标签: javascript json ajax api get