前端配置了跨域代理,却还是报错

博客讲述了作者在前端项目中遇到跨域代理配置问题,尝试多种方法未果,最终通过阅读某博主的文章找到解决方案。问题在于webpack.config.js未正确暴露配置,而是在vue.config.js中配置了http-proxy-middleware。安装并使用该中间件后,成功解决了跨域问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端配置了跨域代理,反反复复检查了配置文件,也确保配置文件修改过后是保存重启过项目的却还是报错,如下:

Proxy error: Could not proxy request /api/product/getBaseCategoryList from localhost:8080 to
 http://39.38.123.211.
See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ETI
MEDOUT).

最后查遍了百度,在这个博主这里得到了解决:

前端配置跨域代理_杏子-优快云博客_前端配置代理

发现我是属于第二种情况,也就是webpack.config.js 文件暴露没有暴露在外,我是在根目录下创建了vue.config.js文件的那种情况,所以需要借助中间件http-proxy-middleware 配置跨域代理。

安装http-proxy-middleware

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

此时重启项目,问题得以解决!

 

### 前端错误解决方案 当遇到前端问题时,有多种方法可以有效解决问题。最理想的情况是将前后端服务部署在同一台服务器上,确保协议、名以及端口号完全一致,这样从根本上避免了的发生[^1]。 然而,在实际开发环境中,这可能并不总是可行的选择。此时可考虑采用代理服务器的方式来绕过浏览器同源策略限制。通过配置本地开发环境中的Web服务器作为中间层转发请求给目标API服务器,再由该服务器返回响应数据给客户端应用[^3]。对于基于Node.js构建的应用程序来说,可以通过`http-proxy-middleware`库轻松设置反向代理: ```javascript const { createProxyMiddleware } = require('http-proxy-middleware'); module.exports = function(app) { app.use( '/api', createProxyMiddleware({ target: 'https://example.com', // 目标接口地址 changeOrigin: true, pathRewrite: { '^/api': '' // 将/api替换为空字符串 } }) ); }; ``` 另一种常见的处理方式就是启用CORS(Cross-Origin Resource Sharing),即资源共享机制。这是一种安全标准,允许特定的外部资源被加载并访问。后端需正确设置HTTP头信息以告知浏览器哪些来源是可以信任并与之交互的站点[^4]。例如,在Express框架下添加如下代码片段即可开启简单形式下的全局CORS支持: ```javascript var express = require('express') var cors = require('cors') var app = express() app.use(cors()) app.get('/products/:id', function (req, res, next) { res.json({msg: 'This is CORS-enabled for all origins!'}) }) ``` 值得注意的是,虽然上述两种办法能够很好地应对大多数场景下的挑战,但在某些特殊情况下还需要结合业务逻辑做出更灵活调整。比如JSONP技术适用于仅限GET请求的数据获取操作;WebSocket则提供了全双工通信渠道而不受制于传统意义上的同源政策约束等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值