如何使用AJAX或fetch()

时间:2016-01-14 13:12:55

标签: javascript ajax mediawiki wikipedia wikipedia-api

我想在浏览器中动态获取Wikipedia网页,以便使用XSLTProcessor进一步处理XHTML。

不幸的是,这不起作用,因为我无法让Wikipedia在HTTP响应中发送“Access-Control-Allow-Origin”标头。

我尝试在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);
});

1 个答案:

答案 0 :(得分:2)

  

不幸的是,这不起作用,因为我无法让维基百科发送" Access-Control-Allow-Origin" HTTP响应中的标头。

不,你不能。由维基百科决定是否要明确授予在其他网站上运行的JavaScript访问其网页的权限。

因为这将允许用户'要泄露的个人信息(例如登录维基百科页面显示用户的用户名,可用于增强网络钓鱼攻击),这显然是不可取的。

var url = "https://en.wikipedia.org/wiki/Star_Trek?origin=https://my-own-page.com";

origin是HTTP请求标头,而不是查询字符串参数,并且自动包含在跨源XMLHttpRequest / fetch请求中,而无需执行任何特殊操作。