從客戶端,我通過ajax post收到一些數據。數據類型是json格式。如何將請求數據轉換爲json或dict格式
function sendProjectBaseInfo() {
prj = {
id : $('#id').val(),
email : $('#email').val(),
title : $('#title').val(),
}
$.ajax({
url: '/prj/',
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: prj,
success: function(result) {
alert(result.Result)
}
});
}
得到json數據後,我嘗試轉換爲json或dict格式。 轉換爲json。我這樣寫:
import json
def post(self, request):
if request.is_ajax():
if request.method == 'POST':
json_data = json.loads(request.data)
print('Raw Data : %s'%request.body)
return HttpResponse('OK!')
在上面的情況下,我得到500內部服務器錯誤。
所以我寫下如下來解決這個錯誤。
import json
def post(self, request):
if request.is_ajax():
if request.method == 'POST':
data = json.dumps(request.data)
print('Raw Data : %s'%request.body)
return HttpResponse('OK!')
畢竟我得到了同樣的錯誤。所以我正在研究所要求的數據。
import json
def post(self, request):
if request.is_ajax():
if request.method == 'POST':
print('Raw Data : %s'%request.body)
return HttpResponse('OK!')
打印出來是:
Raw Data : b'{"id":"1","email":"[email protected]","title":"TEST"}'
我怎樣才能克服這種情況?
對我不起作用以下。 – eachone
@eachone:然後在這裏打印完整的錯誤跟蹤,否則我們將無法找出問題所在。 –
我在哪裏可以得到錯誤信息?但是,我已經解決了這個錯誤。在客戶端,數據:JSON.stringfy(prj)。您的評論對我有幫助。 – eachone