.append 上的 Laravel ajax“无效或意外令牌”

Posted

技术标签:

【中文标题】.append 上的 Laravel ajax“无效或意外令牌”【英文标题】:Laravel ajax "invalid or unexpected token" on .append 【发布时间】:2021-09-04 17:10:42 【问题描述】:

我正在尝试使用来自 laravel 控制器函数的 ajax append 来调用我的表格内容。虽然我收到了这个错误

阿贾克斯:

    function fetchcategory() 
        $.ajax(
            type: "GET",
            url: "/clinical/bbr-category-configuration-data",
            dataType: "json",
            success: function (response)
                // console.log(response.all_categories);
                $.each(response.all_categories, function (key, item) 
                    $('tbody').append('<tr>\
                        <td>'+item.category_name+'</td>\
                        <td>'+item.category_name+'</td>\
                        <td>'+item.category_name+'</td>\
                        <td>'+item.category_name+'</td>\ 
                        </tr>');
                );
            
        );
    

控制器:(tabled 检索表单模型 HmsBbrCategory)

public function fetchcategory()
    $all_categories = HmsBbrCategory::all();
    return response()->json([
        'all_categories'=>$all_categories,
    ]);

路线:

    Route::get('/bbr-category-configuration-data', [BBRCategoryConfigurationController::class,'fetchcategory']);

我做错了什么语法来得到这个意外的令牌错误,乍一看,它们似乎都包含在附加内容中。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

这只是 javascript 字符串语法。你不能像这样逃避换行符。

这个版本应该可以工作。

$('tbody').append('<tr>'+
  '<td>'+item.category_name+'</td>'+
  '<td>'+item.category_name+'</td>'+
  '<td>'+item.category_name+'</td>'+
  '<td>'+item.category_name+'</td>'+
'</tr>');

或更好,使用更新的语法。

$('tbody').append(`<tr>
  <td>$item.category_name</td>
  <td>$item.category_name</td>
  <td>$item.category_name</td>
  <td>$item.category_name</td>
</tr>`);

【讨论】:

试过这些,控制台显示第一个给我Uncaught SyntaxError: Unexpected token '&lt;',第二个给我Uncaught SyntaxError: missing ) after argument list 我编辑了我的帖子。你能再试一次吗?第一个版本现在应该可以工作了。您的浏览器可能不支持第二个版本。【参考方案2】:

我不能用手指绕着它,

但是 VSCode 不喜欢你发布的文字

我只删除所有最后一个字符并添加它们新的,瞧,它可以工作

$.each(response.all_categories, function (key, item) 
    $('tbody').append('<tr>\
        <td>'+item.category_name+'</td>\
        <td>'+item.category_name+'</td>\
        <td>'+item.category_name+'</td>\
        <td>'+item.category_name+'</td>\
        </tr>');
);

【讨论】:

谢谢你,你提供的代码看起来和我的几乎一模一样,你说的“删除所有最后一个字符”是什么意思? @STGSH 我在 vs 代码中删除了您代码中的 al \ 并通过再次输入它们来添加 我明白了,如果我再次遇到同样的问题,我会这样做,奇怪的错误,但仍然感谢您的帮助! 您输入了另一个 Utf8 字符,看起来像 \ 我有一个德国寡妇,使用德语键盘。用你应该看的键盘

以上是关于.append 上的 Laravel ajax“无效或意外令牌”的主要内容,如果未能解决你的问题,请参考以下文章

laravel框架里用jq实现ajax图片上传

PHP Laravel:Ajax 无法检索数据(无属性)

Laravel:通过无表单的 AJAX 向控制器发送数据

在 laravel 中搜索自动完成 ajax

Laravel 5.6 上的 419 Ajax 错误 - 已编辑

Laravel 5.6 上的 Ajax 身份验证重定向