'<', "<!DOCTYPE "... не является валидным JSON Promise.then (async) ошибка в Django [закрыто]
В настоящее время я изучаю Django и пытаюсь создать сайт электронной коммерции. Я пытаюсь понять, почему я получаю эту ошибку в консоли. Я пытаюсь сделать вызов fetch и пытаюсь отправить данные на url по имени update_item, и я ожидаю, что функция view вернет json-ответ в консоль, но я постоянно получаю эту ошибку. Может ли кто-нибудь помочь.
**Это мой js файл. **
var updateBtns = document.getElementsByClassName('update-cart')
for (i = 0; i < updateBtns.length; i++) {
updateBtns[i].addEventListener('click', function(){
var productId = this.dataset.product
var action = this.dataset.action
console.log('productId:', productId, 'Action:', action)
console.log('USER:', user)
if (user == 'AnonymousUser'){
console.log('User is not authenticated')
}else{
updateUserOrder(productId, action)
}
})
}
function updateUserOrder(productId, action){
console.log('User is authenticated, sending data...')
var url = '/update_item/'
fetch(url, {
method:'POST',
headers:{
'Content-Type':'application/json',
'X-CSRFToken':csrftoken
},
body:JSON.stringify({'productId':productId, 'action':action})
})
.then((response) => {
return response.json()
})
.then((data) => {
console.log('data:', data)
});
}
Это мой файл views.py.
from django.shortcuts import render
from django.http import JsonResponse
from .models import *
# Create your views here.
def store(request):
products = Product.objects.all()
context = {'products':products}
return render(request,'store/store.html',context)
def cart(request):
if request.user.is_authenticated:
customer = request.user.customer
order, created = Order.objects.get_or_create(customer=customer, complete=False)
items = order.orderitem_set.all()
else:
# Create empty cart for now for non-logged in user
items = []
order = {'get_cart_total':0, 'get_cart_items':0 }
context = {'items': items, 'order':order}
return render(request, 'store/cart.html', context)
def checkout(request):
if request.user.is_authenticated:
customer = request.user.customer
order, created = Order.objects.get_or_create(customer=customer, complete=False)
items = order.orderitem_set.all()
else:
# Create empty cart for now for non-logged in user
items = []
order = {'get_cart_total':0, 'get_cart_items':0 }
context = {'items': items, 'order':order}
return render(request,'store/checkout.html',context)
def updateItem(request):
return JsonResponse('Item was added', safe=False)
Это мой файл urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.store, name = "store"),
path('cart/', views.cart, name = "cart"),
path('checkout/', views.checkout, name = "checkout"),
path('update_item/', views.updateItem, name = "update_item")
]