1. import React from 'react';
  2. class App extends React.Component {
  3. componentDidMount() {
  4. fetch('https://douban.uieee.com/v2/movie/in_theaters')
  5. .then( res => {
  6. return res.json()
  7. }).then(data => {
  8. console.log(data)
  9. })
  10. }
  11. render() {
  12. return (
  13. <div>
  14. hello
  15. </div>
  16. )
  17. }
  18. }
  19. export default App;

跨域解决方案 1

  1. package.json 中配置如下
  2. "proxy": "http://tingapi.ting.baidu.com"

跨域解决方案 2

  1. cnpm i --save-dev http-proxy-middleware
  2. src下创建 setupProxy.js 文件
  3. const {createProxyMiddleware} = require('http-proxy-middleware')
  4. module.exports = function(app) {
  5. app.use('/api', createProxyMiddleware({ target: 'http://localhost:3100', changeOrigin: true }));
  6. // 多个
  7. app.use('/api', createProxyMiddleware({ target: 'http://localhost:3100', changeOrigin: true }));
  8. }

封装fetch请求

  • 新建utils文件夹, http.js 文件
  1. /**
  2. * get post请求
  3. */
  4. import qs from 'querystring'
  5. export async function httpGet(url) {
  6. const result = await fetch(url).then(res=>res.json())
  7. return result
  8. }
  9. export function httPost(url, params) {
  10. const result = fetch(url, {
  11. method: 'POST',
  12. headers: {
  13. 'content-type': 'application/x-www-form-urlencoded',
  14. "Accept": 'application/json,text/plain,*/*'
  15. },
  16. body:qs.stringify(params)
  17. }).then(res=>res.json())
  18. return result
  19. }
  • 新建api文件夹, base.js
  1. const baseUrl = ''
  2. const base = {
  3. url1: 'https://douban.uieee.com/v2/movie/in_theaters',
  4. url2: baseUrl + '/usl2'
  5. }
  6. export default base
  • 新建index.js
  1. import { httpGet } from '../utils/http'
  2. import base from './base'
  3. /**
  4. * 有多少的请求, 一次性看到
  5. * redux 的actions 集中在一起
  6. */
  7. const api = {
  8. getChengpin() {
  9. return httpGet(base.url1)
  10. }
  11. }
  12. export default api