1

我一直在挑选这个,虽然我想我会寻求一些建议,如果可以的话,我对 AJAX 还很陌生。

对,我正在使用 django 框架,我将数据发布到服务器,这很好用,然后在回调函数上接收一些数据,这很好用,虽然我希望这是 JSON 格式,所以我可以填充一个表。目前它要么以纯文本形式呈现,要么浏览器要求我下载 json 数据,这意味着 $.get 部分不太受欢迎。我的代码是:

  #views.py

  if request.POST:
  est_show = login_a.test()
  return HttpResponse(est_show, content_type='application/json')


     <!--JQUERY/AJAX-->
     <script type="text/javascript">
    $(document).on("submit","#these_choices",function (event) {
     var data_form = $('#these_choices').serialize();


   if(data_form) {
  $.ajax({
      type: "POST",
      url: "{% url Create_this %}",
      data: {'test':'test','csrfmiddlewaretoken': '{{ csrf_token }}'},
      cache:false,
      success: function(){
        jQuery(document).ready(function ($) {
        $.get('{% url Create_this %}', function(data) {
            alert(data[0]);
          });});

                },
      error: function(){
        alert('error !!!!');
      }

              });}
else {
  alert('error elsewhere');
}

 event.defaultPrevented(); //not running PreventDefault returns json using defaultPrevented returns json and doesnt render anything when this is blanked out...
 return false;
  });
  </script>

似乎在浏览器中接收到 json 数据之前正在运行 alert(data[0]) 。任何建议将被认真考虑?

非常感谢

4

1 回答 1

0

尝试mimetypeHttpResponseto中设置application/json。当您未dataType在 ajax 请求中指定 a 时,JQuery 会自动尝试根据响应的 mimetype 推断它。

return HttpResponse(est_show, mimetype='application/json')

或者,您可以将 设置dataTypejson告诉 JQuery 期待 json。

于 2013-10-02T23:45:34.103 回答