Получение json ошибки декодера. Но я не могу понять, в чем ошибка? - PullRequest
0 голосов
/ 01 августа 2020

Это код в моем html в тегах скрипта

document.getElementById('payment-info').addEventListener('click',function(e){
    submitFormData()
  })
function submitFormData(){
    console.log('Payment Button Clicked')
    var userFormData={
      'name':null,
      'email':null,
      'total':total,
    }

    var shippingInfo={
      'address':null,
      'city':null,
      'state':null,
      'zipcode':null,
    }

    shippingInfo.address = form.address.value
    shippingInfo.city = form.city.value
    shippingInfo.state = form.state.value
    shippingInfo.zipcode = form.zipcode.value

    var url="/process_order/"
    fetch(url, {
      method:'POST',
      headers:{
        'Content-Type':'application/json',
        'X-CSRFToken':csrftoken,
      },
      body:JSON.stringify({'form':userFormData,'shipping':shippingInfo}),
    })
    .then((response) => response.json())
    .then((data) => {
      console.log('Success:',data);
      alert('Transaction Completed')
      window.location.href="{% url 'index' %}"

    })

  }

А это мой views.py

def processOrder(request):
    transaction_id=datetime.datetime.now().timestamp()
    data = json.loads(request.body)
    customer=request.user.customer
    order, created=Order.objects.get_or_create(customer=customer,complete=False)
    total=float(data['form']['total'])
    order.transaction_id=transaction_id
    if total == float(order.get_cart_total):
        order.complete = True
    order.save()

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

Он работал нормально, пока я не добавил data=json.loads(request.body) до почтового индекса. Когда я добавил эту часть кода, он начинает показывать мне эту ошибку:

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Без добавления этого раздела я смог успешно распечатать это: print('data:',request.body), но после добавления этой части кода я получаю эту ошибку . Я попытался выяснить, в чем проблема, но прошел день, и я не могу найти проблему.

Любая помощь будет принята с благодарностью, спасибо

Это полная ошибка:

Traceback (most recent call last):
  File "c:\users\lenovo\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)

During handling of the above exception (0), another exception occurred:
  File "C:\Users\LENOVO\Envs\myapp\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\LENOVO\Envs\myapp\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\LENOVO\Envs\myapp\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\LENOVO\myapp\website\myapp\views.py", line 156, in processOrder
    data = json.loads(request.body)
  File "c:\users\lenovo\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "c:\users\lenovo\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "c:\users\lenovo\appdata\local\programs\python\python38\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None

Exception Type: JSONDecodeError at /process_order/
Exception Value: Expecting value: line 1 column 1 (char 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...