// 跨域配置 module.exports = { devServer: { //记住,别写错了devServer//设置本地默认端口 选填 port: 9876, proxy: { //设置代理,必须填 '/api': { //设置拦截器 拦截器格式 斜杠+拦截器名字,名字可以自己定 target: 'http://localhost:9090', //代理的目标地址 changeOrigin: true, //是否设置同源,输入是的 pathRewrite: { //路径重写 '/api': '' //选择忽略拦截器里面的单词 } } } } }不起作用,还要怎么配置
时间: 2024-02-10 13:17:42 浏览: 140
除了在代理设置中配置,还需要确保前端代码中的请求路径正确。以下是一些常见的解决方法:
1. 在前端代码中使用绝对路径访问后端,如`http://localhost:9876/api/xxx`(注意端口号应该是开发服务器的端口号而不是后端的端口号)。
2. 确保前端代码和后端代码运行在同一个域名或者子域名下。
3. 确保后端接口设置了正确的CORS响应头,允许前端请求。
如果以上方法都无效,可能需要检查本地开发服务器和后端服务器的配置,或者使用其他的跨域解决方案,如JSONP、WebSocket等。
相关问题
做了代理,为什么访问的地址还是前端的地址// 跨域配置 module.exports = { devServer: { //记住,别写错了devServer//设置本地默认端口 选填 port: 9876, //前台端口,选填的。(此处把端口改成了9876) proxy: { //设置代理,必须填 '/api': { //设置拦截器 拦截器格式 斜杠+拦截器名字,名字可以自己定 target: 'http://localhost:9090', //代理的目标地址(结合上一句的意思就是,遇到 /api默认为此处的arget) changeOrigin: true, //是否设置同源,输入是的 pathRewrite: { //路径重写 '^/api': '' //选择忽略拦截器里面的内容(将api替换成空的字符串) } } } } }
这段代码主要是为了解决前端跨域问题而设置了代理。其中,使用了devServer来配置本地开发服务器,通过设置proxy来实现对特定请求的拦截与代理。
具体来说,当前端请求以/api开头的地址时,会被拦截并转发到目标地址http://localhost:9090,从而达到跨域访问的目的。而使用pathRewrite可以对请求的路径进行重写,将/api替换成空字符串,这样目标服务器就不会收到/api的请求路径了。
需要注意的是,此处的代理只是在开发环境下使用,实际部署时还需要进行其他的跨域处理。
vue3设置跨域devServer
Vue CLI 3提供了一种简单的方法来设置跨域请求。您可以通过编辑项目根目录下vue.config.js文件来配置devServer选项。在devServer选项中,您可以使用proxy字段来设置代理。
```javascript
// vue.config.js
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://api.example.com', // 设置代理目标地址
changeOrigin: true, // 是否改变请求源地址
pathRewrite: {
'^/api': '' // 重写请求路径,可选配置
}
}
}
}
}
```
上述配置中,我们将以/api开头的请求代理到http://api.example.com。changeOrigin选项设置为true表示将请求源地址更改为代理目标地址。如果需要重写请求路径,可以使用pathRewrite选项。
请注意,以上配置只在开发环境中生效,正式环境需要采用其他方法来处理跨域,比如后端设置可以跨域、Nginx反向代理或前端使用JSONP处理跨域。
阅读全文