【发布时间】:2017-07-06 02:45:46
【问题描述】:
我对如何在 react 中处理 wikipedia api 调用感到有些困惑。我一直遇到这个错误:
跨域请求被阻止:同源策略不允许读取远程资源(...)
现在,我在提交表单时运行一个操作,表单获取表单输入值并将其插入到 Wikipedia api URL。我尝试过使用 JSONP,但我真的不想使用它,因为我听说它超级 hacky。
actions/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
}
如有必要,我当然可以添加更多代码,但据我所知,这就是问题所在。
edit:如果我必须使用 JSONP,我仍然无法使用。我相信axios不支持JSONP,有没有更好的库可以使用?为什么有些 API 会出现跨域引用错误,而有些却没有?
【问题讨论】:
-
看起来其他一些人也有同样的问题github.com/mzabriskie/axios/issues/191
标签: javascript ajax reactjs cors react-redux