Ajax成功取决于响应主体中的响应

时间:2019-03-25 17:38:31

标签: javascript ajax

我正在一个项目上,我发现要用ajax进行侧面加载是不幸的事情,不幸的是,我有更多的状态,然后是确定和错误。

情况如下:

当我用ajax加载页面的一部分并且响应站点为空时,这没问题,一切都按预期进行。

但是,当响应标记有警告时,我需要将其打印到屏幕上。我猜没什么花哨的。

这是我正在使用的代码:

出于测试目的,我想将/backend/posthourssingle响应中的所有内容打印到ID为alert_saveinfo_{{ ma.persnr }}的范围中。使用Twig变量工作时,我具有跨度,并且输出为"res:",而没有/backend/posthourssingle的内容。当使用网络工具检查元素时Chrome,我可以将响应显示为HTML文本。

<script>
  $("#submit_{{ ma.persnr }}").click(function(e) {
    e.preventDefault();
    var json = $("#formtosubmit{{ ma.persnr }}").serialize();

    $.ajax({
      type: 'POST',
      datatype: 'json',
      url:'/backend/posthourssingle',
      data: json,
      success:function(result) { 
        response = result;
        //document.getElementById('alert_saveinfo_{{ ma.persnr }}').innerHTML = '"res:' + response + '"';

        showToast('success', 'Datensatz wird gespeichert!', 'Daten von <b>{{ ma.vorname }} {{ ma.nachname }}</b> ({{ ma.persnr }}) wurden in der Datenbank gespeichert.');
        // showToast('warning', 'Warning Head!', 'Warning Text.');
      }
    })

  });
</script>

1 个答案:

答案 0 :(得分:1)

如果需要从服务器获取HTML,则需要指定dataType: 'html',而不是json。请参阅ajax文档

  

数据类型(默认值:Intelligent Guess (xml, json, script, or html)
  类型:字符串
  您期望从服务器返回的数据类型   ...
  "html":以纯文本格式返回HTML;当插入DOM中时,将评估包含的脚本标签。

$.ajax({
      type: 'POST',
      contentType: 'json'
      dataType: 'html',
      url:'/backend/posthourssingle',
      data: json,
      success:function(result) { 
        response = result;
        //document.getElementById('alert_saveinfo_{{ ma.persnr }}').innerHTML = '"res:' + response + '"';

        showToast('success', 'Datensatz wird gespeichert!', 'Daten von <b>{{ ma.vorname }} {{ ma.nachname }}</b> ({{ ma.persnr }}) wurden in der Datenbank gespeichert.');
        // showToast('warning', 'Warning Head!', 'Warning Text.');
      }
    })