Vue2中使用axios发送请求,Django中接收请求

1.在vue2中引入axios

axios 是一个基于 promise 的 HTTP 库,简单的讲就是可以发送get、post请求。

首先在vue项目中找到main.js

加入以下代码完成全局引入

import axios from 'axios'
Vue.prototype.$axios = axios

2.发送请求

现在即可在需要发送请求的地方,使用this.$axios(url,data)发送请求

this.$axios.post('http://localhost:8000/login',this.ruleForm).then(res => {
              console.log(res)
            })

这里使用axios发送一个post请求,将ruleForm这个表单作为数据,接受方为本地的Django项目

3.Django中关于axios请求的接收

注意:

原生的django对于content-type为application/x-www-form-urlencoded 的ajax请求,且data经过urlencoded编码,其数据是放在request.POST(request.body中也会有数据,但是格式得自己重新反序列化)中的。,data若无编码直接上传,会放在request.body中,而request.POST中是错误格式的数据。

用原生django只能通过request.body获取数据,而这时的request.body为bytes类型,可通过json.loads(request.body)获取前端传过来的字典

body中是byte string,可能要解码成unicode string才能使用

在Django中做如下配置,即可拿到数据

body = json.loads(request.body.decode('utf-8'))
uname = body['username']

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值