簡體   English   中英

jQuery,AJAX使用JSON發布Javascript數組

[英]jQuery, AJAX post Javascript array with JSON

我有一個Javascript變量,它是一個數組(我將字符串推入其中),並且我必須通過AJAX jQuery.POST()方法將該列表發送回服務器:

var user_list = new Array();
user_list.push("42");
var data = { user_list: JSON.stringify(user_list)};
$.post('/accounts/ajax/user_verification/', data)
    .done( my_cb );

在服務器中,我正在運行Django,並嘗試使用以下視圖解碼POST請求:

@login_required
def user_verification(request):

    if not request.POST.has_key('user_list'):
        print (__name__ + ', user_verification, raising BadRequest.')
        raise Exception("'user_list' not found as a POST parameter.")

    value = unicode(request.POST['user_list'])
    print (__name__ + ', value, v = ' + value)
    user_list = json.loads(request.body) 

我得到“ json.loads(request.body)”引發的以下輸出和后驗異常:

accounts.ajax, value, v = ["42"]
ValueError: No JSON object could be decoded

[“ 42”]是不是只有一個元素的有效JSON數組定義?

我對Django一無所知,所以,這完全是猜測:D

import json
...
value = json.load(request.POST['user_list'])

我在這里可能是完全錯誤的,但是在我看來,您正在嘗試解碼錯誤的內容。 如果我沒記錯的話,您的request.body看起來像這樣:

user_list=["42"]

如果您嘗試對此進行解碼,則會遇到問題。 那么,為什么不從變量值中解碼值呢?

user_list = json.loads(value) 

暫無
暫無

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

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