DJANGO Jquery/ajax get 'httpresponse' JSON



我一直在挑剔这个问题,尽管我想我会寻求一些建议,如果可以的话,我对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 数据之前,警报(data[0])似乎正在运行。任何建议将不胜感激?

非常感谢

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

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

或者,您可以将dataType设置为 json,以告诉 JQuery 需要 json。

最新更新