【问题标题】:django ajax request response [duplicate]django ajax请求响应[重复]
【发布时间】: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

【问题讨论】:

    标签: ajax django django-templates django-views ajax-upload


    【解决方案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})
    

    【讨论】:

    • 哦,抱歉,这只是一个复制粘贴问题。我已经编辑了问题
    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2011-11-06
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    相关资源
    最近更新 更多