Hir*_*uri 3 javascript django post axios
我正在从Jquery AJAX迁移到Axios,因为我使用的是ReactJS所以我认为它更干净,我有一些麻烦向服务器发布一个简单的请求,post方法通过我的视图,但每当print(request.POST)
我有一个空的查询集(<QueryDict: {}>
).
这是JS:
axios({
method: 'post',
url: SITE_DOMAIN_NAME + '/my_url_name/', #http://127.0.0.1:8000/my_url_name
data: {
'tes1':'test',
'tes2':'test'
},
headers: {
"X-CSRFToken": CSRF_TOKEN,
"content-type": "application/json" #tried without content-type too.
}
}).then(function (response) {
console.log(response)
}).catch(function (error) {
console.log(error)
});
Run Code Online (Sandbox Code Playgroud)
Django视图是一个简单的ClassBasedView.
我究竟做错了什么?
request.POST
仅适用于表单编码数据.如果您要发布JSON,那么您应该使用request.body
.
import json
json.loads(request.body.decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
如果您这样做,则必须对基于类的视图进行更改才能使用request.body
.
如果你想让axios发送表单编码数据,GitHub上的这个问题可能有所帮助.