Reputation: 605
Error is: Forbidden (CSRF token missing or incorrect.): /tracker/
i try a URL : tracker, tracker/, /tracker/, http://127.0.0.1:8000/tracker/'
I'm new to Django. I try many URL and I also try a Moesif CORS(Extention)
console Error is: jquery-3.5.1.js:10099 POST http://127.0.0.1:8000/tracker/ 403 (Forbidden) send @ jquery-3.5.1.js:10099 ajax @ jquery-3.5.1.js:9682 (anonymous) @ (index):276 dispatch @ jquery-3.5.1.js:5429 elemData.handle @ jquery-3.5.1.js:5233
urls.py file:
urlpatterns = [
path('', views.index, name="index"),
path('preview/<int:id>/', views.preview, name="preview"),
path('checkout/', views.checkout, name="checkout"),
path('tracker/', views.tracker, name="tracker"),
]
console.log('working')
$('#trackerForm').submit(function(event){
$('#items').empty();
var formdata = {
'orderId' : $('input[name=order_id]').val(),
'email' : $('input[name=email]').val(),
'csrfmiddlewaretoken': $('input[name=csrfmiddlewaretoken]').val()
};
$.ajax({
type : 'POST',
url : 'http://127.0.0.1:8000/tracker/',
data:'formdata',
encode: true
})
.done(function(data){
console.log(data)
updates = JSON.parse(data);
if (updates.length > 0 & updates != {}) {
for (i = 0; i < updates.length; i++) {
let text = updates[i]['text'];
let time = updates[i]['time'];
mystr = `<li class="list-group-item d-flex justify-content-between align-items-center">
${text}
<span class="badge badge-primary badge-pill">${time}</span>
</li>`
$('#items').append(mystr);
}
} else {
mystr = `<li class="list-group-item d-flex justify-content-between align-items-center">
Sorry, We are not able to fetch this order id and email. Make sure to type correct order Id and email</li>`
$('#items').append(mystr);
}
})
event.preventDefault();
})
Views.py
def tracker(request):
if request.method == "POST":
order_id = request.POST.get('order_id')
email = request.POST.get('email')
try:
order = Order.objects.filter(order_id=order_id, email=email)
if len(order) > 0:
update = updateOrder.objects.filter(order_id=order_id)
updates = []
for item in update:
updates.append({'text':item.order_desc, 'time':item.timestamp})
responce = json.dumps(updates, default=str)
print(responce)
return HttpResponse(responce)
else:
return HttpResponse({})
except Exception as e:
return HttpResponse({})
context={}
return render(request, 'cart/tracker.html', context)
Upvotes: 1
Views: 303
Reputation: 3327
Remove the quotes around 'formdata' -> formdata
formdata= {
...
}
...
$.ajax({
type : 'POST',
url : 'http://127.0.0.1:8000/tracker/',
data: formdata,
encode: true
})
Upvotes: 1