簡體   English   中英

如何解決ajax django中的JSONdecode錯誤?

[英]How to solve JSONdecode error in ajax django?

將 POST 請求從 ajax 發送到 django views.py 時,我收到 JSONdecode 錯誤。 POST 發送一個 json 數組。 來自此 POST 的數據將用於創建模型。 感謝任何提示。

錯誤:

Exception Type: JSONDecodeError at /order-confirmation
Exception Value: Expecting value: line 1 column 1 (char 0)
Request information:
USER: ledi12

GET: No GET data

POST: No POST data

FILES: No FILES data

AJAX 請求:

var new_array = JSON.stringify(array)
      $.ajax({
        url: 'http://localhost:8000/order-confirmation',
        type: 'POST',
        data: '{"array":"' + new_array+'"}',
        processData: false,
        contentType: "application/json",
        dataType: "json",
        headers: {"X-CSRFToken":'{{ csrf_token }}'},
        success: function (result) {
            console.log(result.d);
        },
        error: function (result) {
            console.log(result);
        }
      });

意見:

@csrf_exempt
def order_confirmation(request):

    if request.method == 'POST':
        data = json.loads(r"request.body").read()
        print(data)
        return HttpResponse(status=200) 
    else:
        return render(request, 'main_templates/order_confirmation.html')

您收到此錯誤的原因是 JSON 庫無法正確編譯字符串。 您的代碼需要更改一些內容。 刪除 request.body() 附近的 'r' 字符。 json.loads() 中不需要“read()”函數。 您可以將數組預處理為字符串並在完成后將其傳遞給 ajax。 數據字段將只有字符串。 所以ajax代碼字段應該看起來像

data: new_array

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM