首页 > 解决方案 > Laravel Blade 不显示返回的 Ajax 数据

问题描述

从 Ajax 到控制台屏幕的数据,同时,当我查看 Browser f12 Network 时,数据成功返回如下。但它不会显示在某种 index.blade.php 文件的 div 中。

响应 Json 数据

{"options":"<table>\n  <thead>\n    <tr>\n        <th>Alt Grup<\/th>\n        <th>Miktar<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n                      <tr>\n              <td>AB<\/td>\n              <td>110<\/td>\n          <\/tr>\n                  <tr>\n              <td>AC<\/td>\n              <td>9<\/td>\n          <\/tr>\n           \n        \n  <\/tbody>\n<\/table>\n\n\n\n"}

index.blade.php 中的 Ajax 脚本

<script type="text/javascript">
    $(document).ready(function(){
        $('.depo_sec').click(function(){
        var depo_id = $(this).children('input:hidden').eq(0).val();
            $.ajax({
            url: "{{ route('stok-ajax') }}",
            dataType: 'json',
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            method: 'POST',
            data: {depo_id:depo_id},
            success: function(dataHTML) {
                $('#ajax-area').html(dataHTML);
                console.log(dataHTML);
            }
            });
        });
    });
</script>

我想将 ajax 数据显示到div id="ajax-area"中。

index.blade.php

<div class="row">
  <div id="ajax-area"></div>
</div>

它不会给出任何错误,但不会在页面上打印任何内容。

标签: javascriptphpjqueryajaxlaravel

解决方案


根据您的 JSON 返回,您需要

$('#ajax-area').html(dataHTML.options);

代替

$('#ajax-area').html(dataHTML);

注意:你应该非常小心,因为注入一些 HTML 是一个 XSS 漏洞。


推荐阅读