AttributeError: 'dict' object has no attribute 'status_code'

前端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(){
              }
          });

 

posted @ 2019-07-14 21:39  Andy_Yin  阅读(10571)  评论(0编辑  收藏  举报