jquery - 为什么我的 Django jQuery.ajax 响应为空

标签 jquery ajax django responsetext

我正在尝试通过 ajax 调用从 Django View 调用返回 JSON 响应,如下所示:

var tab = 'test';
var response = $.ajax({
    url: "/" + tab + "/"
}).responseText;

alert(response);

这是我的 Django View :

if request.is_ajax() == True:
    req = {}
    req['html'] = '<b>This is a test</b>'
    response = simplejson.dumps(req)
    print response
    return HttpResponse(response, mimetype="application/json")
else:
    return render_to_response("ajax/pingpong.html", {'ajax': ajax})

出于某种奇怪的原因,警报框是空白的(尽管它没有说未定义)。有趣的是,$.post 和 $.getJSON 在完全相同的 URL 上工作得很好。我还在控制台上看到了预期的 JSON 输出。任何帮助将不胜感激!

最佳答案

除非我弄错了,否则 responseText 不是 $.ajax() 返回的属性。我认为你必须做这样的事情:

$.ajax({
  url: "/test",
  dataType: "json",
  success: function(data) {
    // use data
  }
});

由于dataType参数的存在,成功回调中产生的数据是一个普通的JS对象。如果您不指定dataType,您将获得包含服务器返回的原始内容的字符串。

关于jquery - 为什么我的 Django jQuery.ajax 响应为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334221/

相关文章:

javascript - 验证并提交两个表单作为一个 jquery

javascript - 我如何进行初始 JavaScript Ajax 初始化?

django - 如何为 GET 和 POST 编写单独的 View

javascript - 如何将 Django 上下文变量传递到 JavaScript 函数中?

javascript - 将 JavaScript 倒计时转换为 jQuery 倒计时并添加间隔

javascript - 将列表与在线数据库进行比较,提交后使用 JavaScript

javascript - pdf文件上传ajax html

python - 如何在 Django 模型中传递带有字符串的类名

jquery - 需要在另一个图像之上显示可点击的图像

php - Ajax responseText 和 echo 损坏,返回头文件内容