我想在浏览器中动态获取维基百科网页,以便使用 XSLTProcessor 进一步处理 XHTML。
不幸的是,这不起作用,因为我无法让维基百科在 HTTP 响应中发送“Access-Control-Allow-Origin” header 。
我尝试包含 https://www.mediawiki.org/wiki/Manual:CORS 中所述的“origin”参数,但没有成功。
获取完整的网页 HTML 对我来说很重要,因为浏览器在导航到该页面时会获取该 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 请求中,而无需执行任何特殊操作。
关于javascript - 如何使用 AJAX 或 fetch() 获取维基百科网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34790558/