axios 请求 express(nodejs)接口跨域问题

本文介绍了如何处理axios在前端发送请求到express(基于Node.js)后端接口时遇到的跨域问题,通过在express主函数中添加相应代码来解决。

在主函数加入以下代码即可

//设置允许跨域访问该服务.
app.all('*', function (req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  res.header('Access-Control-Allow-Methods', '*');
  res.header('Content-Type', 'application/json;charset=utf-8');
  next();
});
### Node.js Express 后端接口与 Vue2 前端通信教程 #### 1. 环境搭建 在开始开发之前,需要确保安装了 Node.js 和 Vue CLI。可以通过以下命令安装 Vue CLI: ```bash npm install -g @vue/cli ``` 创建 Vue 项目时,使用以下命令: ```bash vue create myproject-frontend ``` 后端服务基于 Express 框架构建。创建一个名为 `server.js` 的文件,并添加以下内容以初始化 Express 应用程序[^1]: ```javascript const express = require('express'); const bodyParser = require('body-parser'); const mongoose = require('mongoose'); const cors = require('cors'); const app = express(); // 中间件配置 app.use(bodyParser.json()); app.use(cors()); // MongoDB 连接 mongoose.connect('mongodb://localhost/mydb', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('MongoDB 连接成功')) .catch(err => console.error('MongoDB 连接失败', err)); // 定义 API 接口 app.get('/', (req, res) => { res.send('Hello World!'); }); // 监听端口 const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`服务器运行在 http://localhost:${PORT}`); }); ``` #### 2. 后端接口开发 定义一个 POST 接口用于接收前端数据。在 `server.js` 文件中添加以下代码[^3]: ```javascript app.post('/api/test/getUserInfo', (req, res) => { console.log("req.body", req.body); res.json({ message: 'hello express----post', data: req.body }); }); ``` 此接口接收 JSON 格式的请求体,并返回响应数据。 #### 3. Vue2 前端交互 在 Vue 项目中,通过 Axios 库发送 HTTP 请求。首先安装 Axios: ```bash npm install axios ``` 在 Vue 组件中,可以使用以下代码调用后端接口: ```javascript <template> <div> <button @click="sendData">发送数据</button> </div> </template> <script> import axios from 'axios'; export default { methods: { sendData() { const data = { name: 'John Doe', age: 30 }; axios.post('http://localhost:3000/api/test/getUserInfo', data) .then(response => { console.log('响应数据:', response.data); }) .catch(error => { console.error('请求错误:', error); }); } } }; </script> ``` 上述代码展示了如何通过按钮点击事件向后端发送数据,并处理返回的响应。 #### 4. 问题解决 为了使前端能够访问后端接口,需要在 Express 中启用 CORS 支持。这已经在 `server.js` 文件中通过 `app.use(cors())` 实现。 #### 5. 测试与调试 启动后端服务: ```bash node server.js ``` 启动 Vue 项目: ```bash npm run serve ``` 打开浏览器并访问 Vue 项目页面,点击按钮即可触发对后端接口请求,并在控制台中查看响应结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值