zoukankan      html  css  js  c++  java
  • React配置代理解决跨域问题

    一、在src目录下建立setupProxy.js, 使用CJS(common JS)语法配置代理,适合一个或多个代理

    const proxy = require('http-proxy-middleware')
    
    module.exports = function(app){
        app.use(//传入一个或多个代理proxy,以逗号隔开
            // 前缀、
            proxy('/api1', {
                target: 'http://localhost:5000',
                changeOrigin: true,
                pathRewrite: {'^/api1': ''} //以api前缀开头,替换为''空串
            })
        )
    }
    

    此时,App.js中,请求的路径要加上/api1前缀,从http://localhost:3000/students变成http://localhost:3000/api1/students

    import './App.css';
    
    import React, { Component } from 'react'
    import axios from 'axios';
    
    export default class App extends Component {
    
      getStudent = ()=>{
        axios.get('http://localhost:3000/api1/students').then(
          response=>{
            console.log('请求成功', response.data)
          },
          err=>{
            console.log('请求失败:', err)
          }
        )
      }
      
      render() {
        return <button onClick={this.getStudent}>点我获取学生信息</button>
      }
    }
    
    
    

    server.js如下:

    const express = require('express')
    const app = express()
    
    app.use((request, response, next)=>{
        console.log('有人请求服务器了');
        next()
    })
    
    app.get('/students', (request, response)=>{
        const students = [
            {id:'001', name:'tom', age:18},
            {id:'002', name:'jerry', age:19},
            {id:'003', name:'tony', age:20}
        ]
        response.send(students)
    })
    
    app.listen(5000, (err)=>{
        if(!err) console.log('服务器启动成功了,请求学生信息地址为:http:localhost:5000/students')
    })
    

    点击按钮,控制台输出信息:

    二、直接在package.json中配置proxy

    直接在最后面加上"proxy": "http://localhost:5000"即可

  • 相关阅读:
    ps cs5 gif 动画 分解
    api 生成方法
    AVAYA 交换机
    jQuery操作input值
    CMM3 软件升级
    ehcache 使用 缓存:健值,页面,Hibernate,监控
    网络封包分析软件Wireshark
    Hacking Windows 7 SP 1 Using Java Signed Applet Social Engineering Code Execution
    以太网历史
    转:web应用开发的发展方向
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14748122.html
Copyright © 2011-2022 走看看