2017-08-12 51 views
1

美好的一天。 我發送JSON數據到我的服務器(JS到Django)和服務器,我只是將數據(仍然是JSON格式)直接保存到數據庫而不將其轉換爲字符串。 現在我想檢索相同的數據,但它不工作。將JSON數據發送給DJANGO。現在我無法取回它

這裏是我的代碼:

$.ajax({ 
    url: '/submitdata/', 
    type: 'POST', 
    dataType: 'text', 
    data: JSON.stringify(userdata), 
    contentType: 'application/json; charset=utf-8', 
    success: function(){ 
      alert('success'); 
    }, 
    error: function(){ 
      alert('sorry, an error occurred'); 

)};

而在服務器

def submitdata(request): 
     if request.is_ajax(): 
      if request.method == 'POST': 
       save_data = my_model(username='michael', userdata = request.body) 
       save_data.save() 

它工作得很好。它被保存到數據庫中。 我現在的問題是檢索它。 我嘗試這樣做: 在我的客戶

$.ajax({ 
    url: '/getdata/', 
    type: 'POST', 
    data: { user_name: 'michael' }, 
    success: function (result){ 
    JSON.parse(result); 
    }, 
    error: function(){} 
    )}; 

而且在我的服務器

if request.method == 'POST': 
    user_name = request.POST['user_name'] 
    datum = my_model.objects.get(username=user_name) 
    return HttpResponse(datum) 

它不工作。它給了我一個錯誤:在JSON數據線1列1 意外字符

注:我嘗試使用JSON.parse在返回數據

+0

所以錯誤來自JS? IIUC,爲什麼不在發送之前'json.dumps(datum)'? – roganjosh

回答

1

使用JsonResponse(datum.userdata),而不是HttpResponse如果你這樣做,你不不需要分析結果。

相關問題