做了代理,为什么访问的地址还是前端的地址// 跨域配置 module.exports = { devServer: { //记住,别写错了devServer//设置本地默认端口 选填 port: 9876, //前台端口,选填的。(此处把端口改成了9876) proxy: { //设置代理,必须填 '/api': { //设置拦截器 拦截器格式 斜杠+拦截器名字,名字可以自己定 target: 'http://localhost:9090', //代理的目标地址(结合上一句的意思就是,遇到 /api默认为此处的arget) changeOrigin: true, //是否设置同源,输入是的 pathRewrite: { //路径重写 '^/api': '' //选择忽略拦截器里面的内容(将api替换成空的字符串) } } } } }
时间: 2024-02-14 10:22:43 浏览: 111
这段代码主要是为了解决前端跨域问题而设置了代理。其中,使用了devServer来配置本地开发服务器,通过设置proxy来实现对特定请求的拦截与代理。
具体来说,当前端请求以/api开头的地址时,会被拦截并转发到目标地址http://localhost:9090,从而达到跨域访问的目的。而使用pathRewrite可以对请求的路径进行重写,将/api替换成空字符串,这样目标服务器就不会收到/api的请求路径了。
需要注意的是,此处的代理只是在开发环境下使用,实际部署时还需要进行其他的跨域处理。
相关问题
// 配置跨域 module.exports = { devServer:{ proxy:"http://blog.shiminghui.top" } }这段代码有错误吗?
这段代码在大多数情况下是正确的,它用于配置Vue项目的开发服务器以实现跨域请求。但是,需要注意以下几点:
1. 需要确保已经安装了`vue-cli`的版本在3.x以上。如果你使用的是旧版本的`vue-cli`(如2.x),则需要使用不同的配置方式。
2. `proxy`的值应该是一个对象,而不是一个字符串。正确的配置应该是:
```javascript
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://blog.shiminghui.top',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
```
上述配置意味着,当你在前端代码中发起以`/api`开头的请求时,将被代理到`http://blog.shiminghui.top`的服务器上。
3. 确保你在项目根目录下的`vue.config.js`文件中进行了正确的配置。如果你没有该文件,请创建一个。
4. 如果你修改了`vue.config.js`文件后,需要重新启动开发服务器以使配置生效。
请根据以上提供的信息检查你的代码是否有任何错误,并确保按照正确的方式进行配置。希望能帮到你!
// 跨域配置 module.exports = { devServer: { //记住,别写错了devServer//设置本地默认端口 选填 port: 9876, proxy: { //设置代理,必须填 '/api': { //设置拦截器 拦截器格式 斜杠+拦截器名字,名字可以自己定 target: 'http://localhost:9090', //代理的目标地址 changeOrigin: true, //是否设置同源,输入是的 pathRewrite: { //路径重写 '/api': '' //选择忽略拦截器里面的单词 } } } } }不起作用,还要怎么配置
除了在代理设置中配置,还需要确保前端代码中的请求路径正确。以下是一些常见的解决方法:
1. 在前端代码中使用绝对路径访问后端,如`http://localhost:9876/api/xxx`(注意端口号应该是开发服务器的端口号而不是后端的端口号)。
2. 确保前端代码和后端代码运行在同一个域名或者子域名下。
3. 确保后端接口设置了正确的CORS响应头,允许前端请求。
如果以上方法都无效,可能需要检查本地开发服务器和后端服务器的配置,或者使用其他的跨域解决方案,如JSONP、WebSocket等。
阅读全文