单击功能按钮时,我的控制台中出现 404 错误



>我有一个简单的购物车添加和删除按钮,但是每当我单击该按钮时,我都会在控制台中出现错误,请记住,我是新手:

cart.js:25 POST http://127.0.0.1:8000/update_item/ 404 (Not Found)
updateUserOrder @ cart.js:25
(anonymous) @ cart.js:14
127.0.0.1/:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

这是我在终端中遇到的错误:

Not Found: /update_item/

我强烈认为这是问题所在,因为获取无法识别update_item views.py

这是购物车中的代码.js:

function updateOrder (ticketId, action){
console.log('User is logged in, sending data..')
var url = '/update_item/'
fetch(url, {
method:'POST',
headers:{
'Content-Type':'application/json',
'X-CSRFToken': csrftoken,
},
body:JSON.stringify({'ticketId': ticketId, 'action':action})
})
.then((response) =>{
return response.json()
})
.then((data) =>{
console.log('data:', data)
location.reload()
})

}

这是我 views.py 代码:

def updateItem(request):
data = json.loads(request.body)
ticketId = data['ticketId']
action = data['action']
print('Action:', action)
print('ticketId:', ticketId)

customer = request.user.customer
ticket = Ticket.objects.get(id=ticketId)
order, created = Order.objects.get_or_create(customer=customer, complete=False)
orderItem, created = OrderItem.objects.get_or_create(order=order, ticket=ticket)
if action == 'add':
orderItem.quantity = (orderItem.quantity + 1)
elif action == 'remove':
orderItem.quantity = (orderItem.quantity - 1)
orderItem.save()
if orderItem.quantity <= 0:
orderItem.delete()
return JsonResponse('Item was added', safe=False)

默认情况下,JsonResponse 期望返回 Json Dict。 使用:safe=False 你覆盖此行为,告诉返回非字典对象是可以的。

您的问题是在这一行中:

return response.json()

您的JS代码也等待字典。

所以你必须在响应中传递一个JsonDict,JS将能够解析它

最新更新