axios请求mysql_接收post请求(vue+axios)解决跨域问题(三)

1.通过postman测试post请求

新建一个接收post的路由

//根据post的id查询

var selId='select * from list where id=?'

//响应post

router.post('/list', function(req, res, next) {

var id=req.body.id; //通过req的body拿到post的id

pool.getConnection(function(err,suc){

suc.query(selId,[id],function(err,result){

if(result){ //数据库有返回数据

result={ //返回数据与格式

code:200,

msg:'获取单个测试列表成功',

data:result

}

}

res.json(result); //响应返回json数据

suc.release(); //关闭数据库连接

})

})

});

测试结果

d8a9ffeebfdc?from=groupmessage

id为1的数据

d8a9ffeebfdc?from=groupmessage

id为2的数据

2.Vue(axios发送post请求)

安装axios&element-ui

cnpm install axios --save //是一个基于 promise 的 HTTP 库

cnpm install element-ui --save //饿了么前端出品的一套 Vue.js 后台组件库

打开main.js引入

//element

import ElementUI from 'element-ui'

import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)

//axios

import axios from 'axios'

axios.defaults.baseURL='http://localhost:3000'; //设置一个类似base_url的请求路径

global.axios=axios; //设置一个全局axios便于调用

打开helloword.vue

//html部分

:data="userList"

border>

fixed

prop="Id"

label="用户ID">

prop="u_name"

label="姓名">

prop="u_phone"

label="电话">

//script部分

data(){

return{userList:[]} //用于接收返回数据

},

mounted(){

this.get()

},

methods:{

get(){

var this_=this;

//调用最开始写的那个接口,拉取全部数据

axios.post('/users/list',{id:1}).then(function(res){

this_.userList=res.data.data

}).catch(function(err){

console.log(err)

}) }, }

测试是否成功连接:

打开mysql

运行node服务 npm start

运行vue npm run dev

发现并没有拿到数据,查看控制台报错信息

d8a9ffeebfdc?from=groupmessage

报错信息

node服务运行在localhost:3000端口,vue运行在localhost:8080端口

解决方法是在node中配置cors解决不同端口的跨域问题

安装cors

cnpm install cors --save

在app.js中引入cors并配置

//cors

var cors=require('cors');

app.use(cors({

origin:['http://localhost:8080'], //指定接收的地址

methods:['GET','POST'], //指定接收的请求类型

alloweHeaders:['Content-Type','Authorization'] //指定header

}))

配置完成后重启node服务 打开vue,看到数据已经成功拿到

d8a9ffeebfdc?from=groupmessage

获取指定数据成功

对数据进行一些基本操作(四)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值