如何使用 AJAX 或 fetch() 获取维基百科网页
How to fetch a Wikipedia webpage with AJAX or fetch()
我想在浏览器中动态获取维基百科网页,以便使用 XSLTProcessor 进一步处理 XHTML。
不幸的是,这不起作用,因为我无法让维基百科在 HTTP 响应中发送 "Access-Control-Allow-Origin" header。
我尝试包含 https://www.mediawiki.org/wiki/Manual:CORS 中所述的 "origin" 参数,但没有成功。
获得完整的网页 HTML 对我来说很重要,因为它是浏览器在导航到该页面时获得的,所以 MediaWiki API 对我来说是不可能的。
这是我试过的:
var url = "https://en.wikipedia.org/wiki/Star_Trek?origin=https://my-own-page.com";
fetch(url).then(function(response){
console.log(response);
});
Unfortunately, this does not work because I can't get Wikipedia to send the "Access-Control-Allow-Origin" header in the HTTP response.
不,你不能。由维基百科决定他们是否要明确授予 JavaScript 运行 在其他网站上访问其页面的权限。
因为这会导致用户的个人信息泄露(例如登录维基百科页面会显示用户的用户名,这可能会被用来增强网络钓鱼攻击),这显然是不可取的。
var url = "https://en.wikipedia.org/wiki/Star_Trek?origin=https://my-own-page.com";
origin
是 HTTP 请求 header,不是查询字符串参数,并且自动包含在跨源 XMLHttpRequest/fetch 请求中,无需您执行任何特殊操作。
我想在浏览器中动态获取维基百科网页,以便使用 XSLTProcessor 进一步处理 XHTML。
不幸的是,这不起作用,因为我无法让维基百科在 HTTP 响应中发送 "Access-Control-Allow-Origin" header。
我尝试包含 https://www.mediawiki.org/wiki/Manual:CORS 中所述的 "origin" 参数,但没有成功。
获得完整的网页 HTML 对我来说很重要,因为它是浏览器在导航到该页面时获得的,所以 MediaWiki API 对我来说是不可能的。
这是我试过的:
var url = "https://en.wikipedia.org/wiki/Star_Trek?origin=https://my-own-page.com";
fetch(url).then(function(response){
console.log(response);
});
Unfortunately, this does not work because I can't get Wikipedia to send the "Access-Control-Allow-Origin" header in the HTTP response.
不,你不能。由维基百科决定他们是否要明确授予 JavaScript 运行 在其他网站上访问其页面的权限。
因为这会导致用户的个人信息泄露(例如登录维基百科页面会显示用户的用户名,这可能会被用来增强网络钓鱼攻击),这显然是不可取的。
var url = "https://en.wikipedia.org/wiki/Star_Trek?origin=https://my-own-page.com";
origin
是 HTTP 请求 header,不是查询字符串参数,并且自动包含在跨源 XMLHttpRequest/fetch 请求中,无需您执行任何特殊操作。