MediaWiki API和Access-Control-Allow-Origin

时间:2014-12-18 18:08:03

标签: angularjs mediawiki-api

我试图在angular.js中创建一个应用程序,允许根据提供的单词在mediawiki中执行搜索。我已经使用自耕农来scafold我的应用程序,并使用' grunt serve'在本地服务器上运行它。但无论我尝试什么,我都会在chrome中获取有关crossorigin请求的错误,例如:

  

XMLHttpRequest无法加载http://en.wikipedia.org/w/api.php。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。因此,不允许原始'http://localhost:9000'访问。

我试图设置' origin'我对localhost地址的请求标题,但它确实在firefox中没有帮助,并且chrome拒绝在控制台中设置此标头抛出消息,这是不安全的。

1 个答案:

答案 0 :(得分:0)

这是一个CORS问题。

在这种情况下,这意味着您需要管理正在调用API.php的托管Wiki。

您的错误表明您正在尝试调用Wikipedia而不是您自己的MediaWiki实例。

在您的代码中编辑API的URL,或者更好地在此处共享代码,以便大家可以看到您的真实问题。

如果您要使用不同的主机和域,则需要在api.php所在的主机MediaWiki上启用CORS。