vue测试环境跨域问题-配置代理

问题

我们遇到请求后台接口遇到Access-Control-Allow-Origin 时,那说明跨域了,
开发中遇到请求后台接口跨域问题时,可以尝试使用代理方法,需要配置前端代码.

vue版

1.在vue.config.js中设置如下代码片段

devServer: {
    hot: true,//热更新
    port: 1234,//访问项目时的端口号
    open: true,//编译自动打开浏览器
    secure:false,//若target是https,并且secure是true,就会停止访问
    proxy: {
      '/api': {
        target: "http://www.xxx.com",
        ws: true,
        changeOrigin: true,
        pathRewrite: {
          '^/api': "",
        },
      },
    },
  },

2.注意在使用时url地址需要写成这样,不要带域名,

request({
    url: '/api/login', //如果proxy下配置的是'api' url要写成'api/login'否则匹配不到
    method: 'post',
    data,
  })

uni-app版

1.在manifest.json文件 源码视图下

"h5": {
		"devServer": {
		    "hot": true,
		    "port": 5173,
		    "proxy": {
		      "/api": {
		        "target": "http://www.xxx.com",
		        "ws": true,
		        "changeOrigin": true,
		        "pathRewrite": {
		          "^/api" : ""
		        }
		      }
		    }
		  }
	},

2.注意在使用时url地址注意不要带域名.

### Ruoyi-Vue 3 配置解决方案 #### 解决方案概述 对于Ruoyi-Vue 3版本中的问题,可以通过前端和后端两种方式进行处理。前端可以在`vue.config.js`文件中设置代理服务器来解决开发环境下的问题;而后端则可以利用Spring Boot提供的全局支持或特定接口级别的控制。 #### 前端配置方法 在开发环境中,为了方便测试API调用,通常会在项目的根目录下找到名为`vue.config.js`的文件,在这里添加如下所示的devServer属性: ```javascript module.exports = { devServer: { proxy: 'http://localhost:8081' // 后端服务的实际地址 } }; ``` 此段代码的作用是在启动Vue CLI内置的服务时自动创建一个HTTP代理,使得所有的Ajax请求都会先经过这个中间件再转发给目标服务器[^1]。 #### 后端配置方法 针对生产环境下更安全的做法是由后端提供CORS(Cross-Origin Resource Sharing)的支持。如果使用的是基于Java Spring Boot构建的应用程序,则有两种主流的方式实现这一点——一种是通过声明式的注解形式,另一种则是编程式地定义CorsConfigurationSource Bean对象。 ##### 使用 `@CrossOrigin` 注解 这是最简单直接的方法之一,只需在Controller类上加上相应的注解即可允许来自指定源的访问: ```java @RestController @RequestMapping("/api") @CrossOrigin(origins = "http://example.com") // 替换成实际的前端名 public class MyController { } ``` 上述例子表明任何从"http://example.com"发起对该控制器内资源的请求都不会受到浏览器同源策略的影响[^2]。 ##### 编程式配置 CORS 支持 当需要更加灵活地管理哪些路径应该开放给谁的时候可以选择这种方式。下面是一个简单的示例展示了如何注册自定义的CorsConfiguationSource bean : ```java @Configuration @EnableWebMvc public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedOrigins("*"); } } ``` 这段逻辑会告诉应用所有以"/"开头的URL模式都接受任意来源(`*`)发出的预检请求(Preflight Request),从而实现了全站范围内的资源共享许可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wepe12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值