VM125:1 Uncaught (in promise) SyntaxError: Unexpected token K in JSON at position 0

时间:2021-07-02 16:50:06

标签: python json django fetch e-commerce

,我正在做这个项目,它是一个使用 django 的电子商务网站。我创建了一个视图,如果用户通过身份验证,它将根据不同的场景处理用户的顺序。 这是视图的代码。

transaction_id = datetime.datetime.now().timestamp()
data = json.loads(request.body)

if request.user.is_authenticated:
    customer = request.user.customer
    order, created = Order.objects.get_or_create(customer=customer, complete=False)
else:
    customer, order = guestOrder(request, data)

total = float(data['form']['total'])
order.transaction_id = transaction_id

if total == order.get_cart_total:
    order.complete = True
order.save()

if order.shipping == True:
    ShippingAddress.objects.create(
    customer=customer,
    order=order,
    address=data['shipping']['address'],
    city=data['shipping']['city'],
    state=data['shipping']['state'],
    zipcode=data['shipping']['zipcode'],
    )

return JsonResponse('Payment submitted..', safe=False)

注意:有些函数在其他文件中,如果你想检查它们,请告诉我。

enter image description here

在这张图片中有两个错误,第一个是指 process_order 视图(上面的代码)。

我无法解决此问题。 当我尝试将数据发布到数据库时

var url = "/process_order/" 获取(网址,{ 方法:'POST', 标题:{ '内容类型':'应用程序/json', '接受':'应用程序/json', 'X-CSRFToken':csrftoken, }, body:JSON.stringify({'form':userFormData, 'shipping':shippingInfo}),

        })
        .then((response) => response.json())
        .then((data) => {
            console.log('Success:', data);
            alert('Transaction completed');  

使用此代码也可以不发送数据。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

编辑:这不是故事的全部。服务器也会产生 500 错误,这很可能是一个 HTML 代码,response.json() 也无法解析。您应该检查 python 控制台中的错误并解决它。您还可以尝试查看浏览器开发工具以查看 Django 生成的整个响应。

不清楚为什么会出现 token 'K' 错误,可能是代码中未显示的部分,但问题在于服务器生成的无效 JSON 响应。

您不能将纯字符串作为 JSON 规范中的顶级内容。因此,您应该使用以下内容代替 JsonResponse('Payment submitted..')

JsonResponse({'detail': 'Payment submitted..'})

对于所有其他 JsonResponse 用法实例也是如此。