Wikipedia API上的CORS错误

山姆

我对如何处理React中的Wikipedia api调用感到有些困惑。我一直遇到这个错误:

跨域请求被阻止:同源策略禁止读取远程资源(...)

现在,我正在提交表单时执行操作,该表单接受表单输入值并将其插入Wikipedia api URL。我已经尝试过使用JSONP,但是我真的不希望使用它,因为我听说它是​​超级hacky。

动作/ index.js

import axios from 'axios';

const WIKI_URL = "https://en.wikipedia.org/w/api.php?action=query&format=jsonp&list=search&titles=";
const FETCH_ARTICLES = 'FETCH_ARTICLES';

export function fetchArticles(term) {
  const url = `${WIKI_URL}${term}`;
  const request = axios.get(url);

  return {
    type: FETCH_ARTICLES,
    payload: request
  }

我绝对可以根据需要添加更多代码,但是据我所知,这就是问题所在。

编辑:如果必须使用JSONP,我仍然无法使用。我相信axios不支持JSONP,会有更好的库吗?为什么有些API出现跨源引用错误,而另一些却没有?

sideshowbarker

拖放format=jsonp并添加origin=*到WIKI_URL值中的查询参数:

const WIKI_URL = "https://en.wikipedia.org/w/api.php?origin=*&action=query…";

请参阅Wikipedia后端的CORS相关文档

对于匿名请求,origin可以将查询字符串参数设置为*允许来自任何地方的请求。

至于format参数,JSON输出是默认设置,因此我认为您无需指定它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章