django ajax请求响应[重复]

Posted

技术标签:

【中文标题】django ajax请求响应[重复]【英文标题】:django ajax request response [duplicate] 【发布时间】:2012-07-17 09:57:15 【问题描述】:

可能重复:django file upload from json

您好,我正在使用模板中的以下 ajax 上传,但我没有得到 django 视图的响应。这里有什么问题..我没有看到任何警报

function ajax_upload(formid)

var form = $(formid);
form.ajaxSubmit(
  dataType:  'json',
  success:   function (data) 
  alert("Hereeeeeeee");
  if(data.status == '1')  
  
     alert("Uploaded Successfull");
  
  else 
  
     alert("Uploaded UnSuccessfull :(");
  
  
 )   ; 

EDIT 姜戈:

  def someview(request):
      response_dict='status':1
      logging.debug("seen") //This is seen in the logs
      return HttpResponse(simplejson.dumps(response_dict), mimetype='application/javascript')

EDIT1

完整的源代码请查看django file upload from json

【问题讨论】:

【参考方案1】:

来自您的代码:

form.ajaxSubmit(
  dataType:  'json',
  success:   function (data) 
    alert("Hereeeeeeee");

您的回调在“成功”时执行,因此我们可以将失败范围缩小到 django 视图端。假设一切在语法上都是正确的,我最好的猜测是,由于您正在返回 json 数据,您的响应 mimetype 应该是:

mimetype='application/json'.

如果这不起作用,我建议在 Firefox 上使用 Firebug 或在 Chrome 上使用开发者工具来查看服务器响应。你应该可以在那里看到一个 django 堆栈跟踪。

【讨论】:

我已经尝试过了,但我仍然没有看到响应我什至可以对响应进行渲染..不知道问题是什么【参考方案2】:

检查 someview 是否已添加到 urls.py。 检查% csrf_token % 是否已添加到表单中

【讨论】:

是的,两者都得到了照顾。如果我在返回之前放了一个日志,我会看到它。请查看问题中的编辑【参考方案3】:

您几乎不可能看到该日志,因此这是一个 python 语法错误:

response_dict'status':1

应该是:

response_dict = dict(status=1)

或:

response_dict = 'status':1

或:

response_dict = dict()
response_dict['status'] = 1

或:

response_dict = dict()
response_dict.update('status':1)

【讨论】:

哦,抱歉,这只是一个复制粘贴问题。我已经编辑了问题

以上是关于django ajax请求响应[重复]的主要内容,如果未能解决你的问题,请参考以下文章

来自 Django 模板的 Ajax JQuery 请求和响应

可以在ajax请求的响应中获取django设置的cookies

如何清除以前的 AJAX 响应数据(不是 html/表单数据)? - Django/AJAX

Django & JavaScript 用Ajax实现JSON数据的请求和响应

ajax 请求servlet 响应 中文乱码

12.Django与ajax