如何使用 Axios 发布到 Django?

2024-03-01

我正在从 Jquery AJAX 迁移到 Axios,因为我使用的是 ReactJS,所以我认为它更干净,我在向服务器发布一个简单的请求时遇到了一些麻烦,post 方法会通过我的视图,但每当我print(request.POST),我有一个空的查询集(<QueryDict: {}>).

axios({
  method: 'post',
  url: SITE_DOMAIN_NAME + '/my_url_name/',
  data: {
    'tes1':'test',
    'tes2':'test'
  },
  headers: {
    "X-CSRFToken": CSRF_TOKEN, 
    "content-type": "application/json"
  }
}).then(function (response) {
  console.log(response)
}).catch(function (error) {
  console.log(error)
});

Django 视图是一个简单的ClassBasedView。

我究竟做错了什么?


request.POST仅适用于表单编码数据。如果您要发布 JSON,那么您应该使用request.body反而。

import json
json.loads(request.body.decode('utf-8'))

如果您这样做,您将必须更改基于类的视图才能使用request.body反而。

如果您想让 axios 发送表单编码数据,这个问题 https://github.com/axios/axios/issues/362GitHub 上可能会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Axios 发布到 Django? 的相关文章

随机推荐