前端AJAX請求數據,提示錯誤:“AttributeError: 'dict' object has no attribute 'status_code'”。
原因:是提示返回對象dict沒有“status_code”屬性,所以返回對象有問題。
views層的函數,有兩個基本限制:
1.第一個數必須是request
2.必須返回HttpResponse類的一個實例(對象).
只返回了 字典類型的數據內容,沒有用HttpResponse包裹一下字典。
return語句沒有 render template或者 render json
改正后的代碼如下,加了HttpResponse:
if request.is_ajax(): cpu_used = getCPUstate(); res_json = '{"cpu_used":cpu_used}' # , 'mem_used':mem_used return HttpResponse(res_json)
還需要注意一個問題:
傳到前端的json必須要加單引號'',因為前端解析json是以字符串解析的,否則傳輸到前端的就是json對象會有問題。
前端json解析代碼如下:
$.ajax({ url:"/linux_monitor/", type:"GET", dataType:"", // processData:false, contentType:false, success:function (rdata) { json_data = JSON.parse(rdata); }, error:function(){ } });
