CORS无法使用React应用程序

时间:2017-07-09 09:23:53

标签: ajax reactjs cors axios

我试图从维基百科api提出请求。虽然我使用普通的node.js服务器(localhost),但我在控制台中得到了这个:

  

XMLHttpRequest无法加载https://en.wikipedia.org/w/api.php?action=query&format=json&prop=pageimages&generator=search&piprop=name|original&pilimit=max&gsrsearch=Horse&gsrlimit=20。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点'null'访问。

这是我的反应部分:

import React, {Component} from 'react';
import axios from 'axios';

class WikipediaViewer extends Component {

   constructor(props) {
      super(props);
      this.state = {
         data: null
      }
   }

   componentDidMount() {

      axios.get('https://en.wikipedia.org/w/api.php?action=query&format=json&prop=pageimages&generator=search&piprop=name|original&pilimit=max&gsrsearch=Horse&gsrlimit=20')
      .then(data => {
            this.setState({
               data: data
            });
            console.log(data);
         })
   }

   render() {
      return (
         <h1>HEllo world!</h1>
      );
   }

}

export default WikipediaViewer

在发出请求后,我根据axios文档添加了以下配置选项:

componentDidMount() {

  axios.get({
     method: 'get',
     url: 'https://en.wikipedia.org/w/api.php?action=query&format=json&prop=pageimages&generator=search&piprop=name|original&pilimit=max&gsrsearch=Horse&gsrlimit=20',
     headers: {'X-Requested-With': 'XMLHttpRequest'},
     withCredentials: true,
  }).then(data => {
        this.setState({
           data: data
        });
        console.log(data);
     })

}

结果:

  

获取http://localhost:3000/[object%20Object] 404(未找到)

为什么我必须得到这个错误,尽管我在本地工作。顺便说一句,我也使用了vitcad的“Allow-Control-Allow-Origin:*”Chrome扩展程序,它不起作用。

0 个答案:

没有答案