首页 > 其他分享 >前端使用proxy代理解决跨域的问题

前端使用proxy代理解决跨域的问题

时间:2023-09-09 13:31:51浏览次数:41  
标签:axios 请求 前端 request 接口 地址 proxy localhost 跨域


 实现方法:

本地向proxy代理服务器发送请求,proxy接收本地请求,转换为目标地址相同IP和端口向目标地址发送请求。

配置:

(注意:因为我是本地启动的后端服务器,所以使用地址为localhost '一些为/api' )

vue.config.js

devServer: {
    open: true,
    proxy: {
      "/localhost": {        // 监听拦截以/localhost开头的请求接口,并替换成target
        target: "http://192.168.2.150:8031",    // 需要代理的目标url,本地就ipconfig查看域名地址
        // target: "http://xx.xx.xxx.xxx:xxxx",  // 后端服务器部署的域名地址,即后端接口
        changOrigin: true,   // 开启代理,允许跨域
        // secure: false,    // 如果使用https,会有安全校验,添加设置secure为false
        pathRewrite: {       // 重写匹配的字段,如果不需要在请求路径上,重写为""
          "^/localhost": "",
        },
      },
    },
  },

前端使用proxy代理解决跨域的问题_ios

request.js:(二次封装的axios请求)

axios封装完整代码:axios 二次封装调用接口的配置

// axios.create 方法创建一个axios的实例
const request = axios.create({
  // 接口的基准路径,监听拦截以/localhost开头的请求接口,并替换成target
  // 判断是生产环境还是开发环境
  process.env.NODE_ENV === "development"
      ? "localhost"                  // ? "http:/localhost:8039"
      : "http://xx.xx.xxx.xxx:xxxx", // 后端服务器部署的域名地址
});

前端使用proxy代理解决跨域的问题_ios_02

api.js:(接口文件)

// 存储接口封装,用户相关的请求模块
import request from "@/utils/request.js";

// export const login = (user) => {
//   return request({
//     url: '', // 接口地址
//     method: 'POST', 'GET',  // 请求方式:
//     data: user              // 如果参数通过请求体来发(post),用data是请求体参数
//   })                        // 如果参数通过请求行来发(get),用params是路径参数
// }  

// -用户登录
export const login = (data) => {
  return request({
    method: "POST",
    url: "/admin/waterMeter/login",  // 后端提供的接口地址
    data,
  });
};

前端使用proxy代理解决跨域的问题_ios_03

响应结果:

前端使用proxy代理解决跨域的问题_封装_04

前端使用proxy代理解决跨域的问题_服务器部署_05

标签:axios,请求,前端,request,接口,地址,proxy,localhost,跨域
From: https://blog.51cto.com/u_15961699/7419111

相关文章

  • web前端技能方法总结(css、js、jquery、html)(2)
    创建链接块display:block;列表样式在一个无序列表中,列表项的标志(marker)是出现在各列表项旁边的圆点。在有序列表中,标志可能是字母、数字或另外某种计数体系中的一个符号。要修改用于列表项的标志类型,可以使用属性list-style-type:ul{list-style-type:square;}1上面的声明把......
  • 前端几个常用的官网模版记录一下
    无意间发现的几个官网模版对于一些要求不高,不需要特定设计的官网,这几个模版套一套,改一改,轻松解决!......
  • 前端开发中如何高效渲染大数据量
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:琉易liuxianyu.cn  在日常工作中,较少的能遇到一次性往页面中插入大量数据的场景,数栈的离线开发(以下简称离线)产品中,就有类似的场景。......
  • 前端三件套案例
    以下是一个使用前端三件套(HTML、CSS、JavaScript)编写的最简单的前端案例:<!DOCTYPEhtml><html><head><title>最简单的前端案例</title><metacharset="UTF-8"><style>/*CSS样式*/h1{color:red;......
  • RTSP流媒体协议视频平台EasyNVR新版存在跨域问题的原因排查
    针对客户反馈的TSINGSEE青犀视频全线产品存在的跨域问题,以前的版本确实遇到过这类问题。目前,我们在服务器端已经进行了允许跨域的配置。然而,仍然有一些客户可能会遇到类似的问题。在本文中,我们将介绍我们采用的解决方法。我们测试了其他浏览器,都是可以获取数据的:我们注意到存在跨域......
  • Axios 的 put 请求实践:实现前端与后端的数据同步
    在前端开发中,我们经常需要与后端服务器进行数据交互。其中,PUT 请求是一种常用的方法,用于向服务器发送更新或修改数据的请求。通过发送PUT请求,我们可以更新服务器上的资源状态。Axios是一个流行的JavaScript库,用于在浏览器和 Node.js 中进行 HTTP 请求。它提供了简单易用......
  • 使用EasyExcel下载文件时,前端获取不到后端返回的文件名,无法下载到本地
    【问题描述】使用EasyExcel下载文件时,前端获取不到后端返回的文件名,无法下载到本地 【原因分析】实际上文件的流后端已经返回了,只是缺少了Content-Disposition属性返回,前端无法获取到文件名;privatestaticOutputStreamgetOutputStream(StringfileName,HttpServletRespon......
  • web前端技能方法总结(css、js、jquery、html)
    CSS设置背景(background)背景颜色background-color背景图片background-image背景重复background-repeat:repeat-x/repeat-y背景位置background-position:bottom/left/top/right/center背景关联background-attachment:fixed/scroll综合写法:.tagName{background:#ffffffurl(“a......
  • 【前端】CSS-flexbox弹性盒模型布局
    目录一、前言二、flexbox简介三、属性1、容器属性2、容器成员属性四、容器属性的作用1、flex-direction①、定义②、语句1)、属性值③、代码示例1)、flex-direction:row2)、flex-direction:row-reverse3)、flex-direction:column4)、flex-direction:column-reverse2、flex-wrap①、......
  • 【前端】CSS3新特性
    目录一、前言二、伪元素选择器1、选择器2、注意事项3、代码示例三、伪元素清除浮动1、第一种伪元素清除浮动2、第二种伪元素清除浮动四、CSS3盒子模型1、box-sizing:content-box2、box-sizing:border-box五、CSS3图片模糊处理1、图片变模糊①、CSS3滤镜filter②、语法③、实例实现2......