当前位置:   article > 正文

react使用axios以及设置代理(http-proxy-middleware)_createproxymiddleware 有哪些参数

createproxymiddleware 有哪些参数

前面已经搭建了基本页面,接下来就是react项目中与后台对接

1.安装axios

npm install axios --save

2.在utils文件夹中创建request.js文件(配置axios封装请求方法)

  1. import axios from 'axios'
  2. import {getToken} from './auth'
  3. const instance = axios.create({
  4. baseURL:'/api',
  5. timeout:50000
  6. })
  7. instance.defaults.headers = {
  8. 'Authorization':'Basic cGxhdGZvcm1fbGljZW5zZV9hZG1pbjpod192ZGlfbGljZW5zZQ=='
  9. }
  10. //请求发出前拦截
  11. instance.interceptors.request.use(function(config){
  12. if(getToken()){
  13. //已经登录的请求头配置,主要用于登录成功后后台返回的token,做权限
  14. config.headers['Content-Type'] = 'application/json;charset=UTF-8';
  15. }else{
  16. // 未登录的请求头配置
  17. }
  18. return config;
  19. },function(error){
  20. return Promise.reject(error)
  21. })
  22. //请求响应拦截
  23. instance.interceptors.response.use(function(response){
  24. return response.data;
  25. },function(error){
  26. return Promise.reject(error)
  27. })
  28. export function get(url,params){
  29. return instance.get(url,{
  30. params
  31. })
  32. }
  33. export function post(url, data){
  34. return instance.post(url,data)
  35. }

3.配置接口文件(services文件夹下管理接口,创建auth.js文件) 

  1. import { post } from '../utils/request'
  2. export function loginApi(url,data){
  3. return post(url,data)
  4. }

4.配置代理,可以访问到后台的服务器地址

安装依赖

npm install --save-dev http-proxy-middleware

在src文件夹中创建setupProxy.js内容配置如下

  1. const {createProxyMiddleware} = require('http-proxy-middleware');
  2. module.exports = function(app) {
  3. app.use('/api', createProxyMiddleware({
  4. target: '',//后台服务器地址
  5. changeOrigin: true,
  6. pathRewrite: {
  7. '^/api': '',
  8. },}))
  9. };

在新版本中已经默认设置代理的文件夹名为setupProxy

 

到这里所有配置就基本完成,在login文件中发起登录请求就可

  1. //在login中引入
  2. import {loginApi} from '../../services/auth'
  3. const onFinish = values => {
  4. loginApi(url,data).then((res)=>{
  5. setToken(res.token) //具体的token设置参考后台接口
  6. props.history.push("/admin")
  7. }).catch((err)=>{
  8. console.log(err)
  9. })
  10. };

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/662488
推荐阅读
相关标签
  

闽ICP备14008679号