使用维基百科的获取库 API - Javascript
Using fetch library for Wikipedia API - Javascript
我正在开发维基百科查看器,我正在尝试从维基百科中提取一些数据 API。这应该是一个正常的请求,知道为什么这个方法没有给出任何响应吗?我正在使用获取库。
console.log(data) 行根本没有 运行。
function getArticleList() {
var searchFor = "";
searchFor = document.getElementById('intext').value;
console.log(searchFor);
fetch("https://en.wikipedia.org/w/api.php?action=opensearch&search=" + searchFor + "&limit=5").then(function(resp) {
console.log("trySearch");
return resp.json()
}).then(function(data) {
console.log(data);
document.querySelector.artName.innerText = data.object[1];
document.querySelector.textArt.innerText = data.object[0];
document.querySelector.href = data.object[2]
})
};
使用 fetch 库有什么特别的原因吗?这可以使用简单的 Jquery AJAX.
来完成
function getArticleList() {
var searchFor = document.getElementById('intext').value;
var response="";
console.log(searchFor);
$.ajax({
url: "https://en.wikipedia.org/w/api.php?action=opensearch&search="+searchFor+"&limit=5",
dataType: 'jsonp',
success: function(data){
console.log(data);
response=data;
}
}).done(function(response) {
console.log(response);
document.querySelector.artName.innerText = response.object[1];
document.querySelector.textArt.innerText = response.object[0];
document.querySelector.href = response.object[2];
});
};
来自维基媒体的 documentation:'For anonymous requests, origin query string parameter can be set to * which will allow requests from anywhere.'
以下对我有用:
fetch("https://en.wikipedia.org/w/api.php?&origin=*&action=opensearch&search=Belgium&limit=5").then(function(resp) {
console.log(resp);
return resp.json()
}).then(function(data) {
console.log(data);
请注意,我在自己的搜索中填写了 'Belgium',但您的代码应该经过正确的修改才能正常工作。
我正在开发维基百科查看器,我正在尝试从维基百科中提取一些数据 API。这应该是一个正常的请求,知道为什么这个方法没有给出任何响应吗?我正在使用获取库。 console.log(data) 行根本没有 运行。
function getArticleList() {
var searchFor = "";
searchFor = document.getElementById('intext').value;
console.log(searchFor);
fetch("https://en.wikipedia.org/w/api.php?action=opensearch&search=" + searchFor + "&limit=5").then(function(resp) {
console.log("trySearch");
return resp.json()
}).then(function(data) {
console.log(data);
document.querySelector.artName.innerText = data.object[1];
document.querySelector.textArt.innerText = data.object[0];
document.querySelector.href = data.object[2]
})
};
使用 fetch 库有什么特别的原因吗?这可以使用简单的 Jquery AJAX.
来完成 function getArticleList() {
var searchFor = document.getElementById('intext').value;
var response="";
console.log(searchFor);
$.ajax({
url: "https://en.wikipedia.org/w/api.php?action=opensearch&search="+searchFor+"&limit=5",
dataType: 'jsonp',
success: function(data){
console.log(data);
response=data;
}
}).done(function(response) {
console.log(response);
document.querySelector.artName.innerText = response.object[1];
document.querySelector.textArt.innerText = response.object[0];
document.querySelector.href = response.object[2];
});
};
来自维基媒体的 documentation:'For anonymous requests, origin query string parameter can be set to * which will allow requests from anywhere.'
以下对我有用:
fetch("https://en.wikipedia.org/w/api.php?&origin=*&action=opensearch&search=Belgium&limit=5").then(function(resp) {
console.log(resp);
return resp.json()
}).then(function(data) {
console.log(data);
请注意,我在自己的搜索中填写了 'Belgium',但您的代码应该经过正确的修改才能正常工作。