使用Axios发送请求返回ERR_NETWORK,排查CORS问题无果求助
解决Axios ERR_NETWORK错误及CORS问题
核心错误:错误配置CORS请求头
你在Axios请求里添加的Access-Control-Allow-Origin、Access-Control-Allow-Headers等头完全无效——这类CORS相关头是服务器端需要返回的响应头,不是客户端请求时要发送的。先把这些错误头从请求配置里删掉,修正后的services.js如下:
import axios from "axios"; export const apiClient = axios.create({ baseURL: 'https://laboratorio3-f36a.restdb.io/rest', headers: { 'x-apikey': '60eb09146661365596af552f', 'Accept': 'application/json', 'Content-Type': 'application/json' // 补充post请求必需的内容类型头 }, }); export default{ transaction(purchaseData){ return apiClient.post(`/transactions/`, purchaseData) // 注意路径改为复数,和其他方法保持一致 }, getHistorial(id){ return apiClient.get(`/transactions/${id}`) }, delete(id){ return apiClient.delete(`/transactions/${id}`) }, edit(id){ return apiClient.put(`/transactions/${id}`) } }
关键解决步骤:配置restdb.io的CORS规则
你用的是restdb.io托管数据库,必须在它的后台配置允许你的前端源访问:
- 登录restdb.io控制台,进入对应数据库
- 找到Settings -> CORS选项
- 在
Allowed Origins中添加http://localhost:8080,生产环境再补充对应域名 - 确保
Allowed Methods包含POST、GET、PUT、DELETE你用到的所有请求方法 - 保存配置
额外排查项
- 路径一致性:你之前的post方法用单数
/transaction/,其他方法用复数/transactions/,要和restdb里的集合名称完全匹配,否则会触发404进而导致网络错误 - 网络环境:检查是否有代理、VPN或浏览器安全插件拦截请求;用Postman直接测试API,排除前端代码外的问题
- 数据格式:确保
purchaseData是合法JSON格式,没有语法错误
验证方式
用Postman测试post请求:
- 请求地址:
https://laboratorio3-f36a.restdb.io/rest/transactions - 请求头添加
x-apikey: 60eb09146661365596af552f和Content-Type: application/json - Body传入你的
purchaseData数据
如果Postman能成功,说明问题在前端CORS配置或路径;如果Postman也失败,就是restdb配置或API路径错误。
内容的提问来源于stack exchange,提问作者Elias
相关产品推荐
相关产品推荐

