I'm moving from Jquery AJAX to Axios since I'm using ReactJS so I think it's cleaner, I am having some troubles posting a simple request to the server, the post method goes through my view but whenever I print(request.POST)
I have an empty queryset ( <QueryDict: {}>
).
Here's the 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)
});
Django view is a simple ClassBasedView.
What am I doing wrong?
request.POST
is only for form-encoded data. If you are posting JSON, then you should use request.body
instead.
import json
json.loads(request.body.decode('utf-8'))
If you do this, you'll have to make changes to your class based view to use request.body
instead.
If you want to get axios to send form encoded data instead, this issue on GitHub might help.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.