I am trying to send ajax request but request QueryDict is empty
var coin = Number(localStorage.getItem("coin"))
if (coin!=0) {
debugger
$.ajax({
url:"/",
method:"POST",
headers:{"X-CSRFToken":$("input[name=csrfmiddlewaretoken]").val()},
data:{"coin":coin},
contentType:"application/json",
success:function(data){
console.log(data)
localStorage.setItem("coin",0)
},
error:function(errMsg){
console.log(errMsg)
localStorage.setItem("coin",0)
}
})
}
elif request.method == "POST":
print(request.POST)
response = JsonResponse({"a":"b"},status=200)
return response
<QueryDict: {}>
[09/Jun/2024 09:36:49] "POST / HTTP/1.1" 200 10
<QueryDict: {"coin":anynumber }>
[09/Jun/2024 09:36:49] "POST / HTTP/1.1" 200 10
These are a few steps you need to consider:
request.body
?var postData = new FormData()
in JavaScript.Additionally, ensure that your AJAX request is correctly configured to send data to the Django view. Here is an example of how you might set up your AJAX request:
$.ajax({
url: '/your-url/',
type: 'POST',
data: postData,
processData: false,
contentType: false,
success: function(response) {
console.log('Success:', response);
},
error: function(error) {
console.log('Error:', error);
}
});
And in your Django view, make sure you are handling the request correctly:
from django.http import JsonResponse
def your_view(request):
if request.method == 'POST':
data = request.POST or request.FILES
# Process your data here
return JsonResponse({'message': 'Success'})
return JsonResponse({'error': 'Invalid request'}, status=400)