2017-03-06 62 views
0

我想轉換AJAX請求從JS檢索JSON到Python的字典在Django,但沒有成功。請幫忙。如何轉換AJAX請求從jquery到Python/Django字典

這是原來的JS代碼:

myJSON = JSON.stringify(myJsObject); 

// POST - send JSON data to Python/Django server 
$.ajax({ 
    url: "/savemyexposuresituation", 
    type: "POST", 
    datatype: 'json', 
    data: myJSON, 
    async: false, 
    success: function() { 
    alert('Your data is saved :)'); 
    }, 
    error: function() { 
    alert('Error occured :('); 
    } 
}); 
} 

這是Django的一面:

def saveExposureSituation(request): 

#get es data - JSON file 
fromJs = request.POST 

fromJs = json.loads(fromJs) 

我得到的是JSON object must be string, not QueryDict。我試圖將此QueryDict轉換成其他不成功的東西。

回答

0

在python 3中將字節轉換爲字符串需要使用decode("utf-8")。所以,可能是這樣的request.POST.decode("utf-8")

0

request.POST用於表單編碼數據。您應該使用request.body

+0

謝謝,我只是嘗試。現在它說「json對象必須是字符串,而不是字節」。 – sawic

+0

好的。我現在想通了。我需要這個:fromJs = fromJs.decode('utf-8') – sawic

+0

非常感謝! – sawic

0

感謝響應,完整的答案是:

def saveExposureSituation(request): 

    fromJs = request.body 
    fromJs = fromJs.encode('utf-8') 

    #now we can load our JSON from JS 
    fromJs = json.loads(fromJs)