在项目中,我采用了前后端分离的方式,我的axios是这样配置的:

/* main.js */
import axios from 'axios'
import VueAxios from 'vue-axios'
axios.defaults.baseURL = 'http://127.0.0.1:5000';
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
Vue.use(VueAxios, axios)

然后我在前端发起了一个axios请求:

/* XX.vue */
get_data: function(i) {
	this.axios({
		method: 'post',
		url: '/test',
		data: {'aa':123},
	})
	.then((response) => {
        console.log(response)
	})
	.catch((error) => {
		console.log(error)
	})
},

我的Flask后端这样接收:

# run.py
from flask import Flask, request
from flask_cors import CORS  # 解决跨域的问题

@app.route('/test', methods=['post'])
def test():
    data = request.get_json(silent=True)
    print(data['aa']) #123

axios不同于普通的Ajax,这表现在,当发起Ajax时,post的数据其实是一个FormData,而axios则是一个PayLoad,所以,在接收数据的方法上略有不同。(Ajax的接收方法是:request.form.get(‘aa’)或者直接resquest.form[‘aa’])

Logo

前往低代码交流专区

更多推荐