You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中使用AJAX提交问卷报错:baseUrl未定义

解决Laravel AJAX问卷提交时“baseUrl not defined”报错问题

这个报错的原因很直接:你在AJAX代码里使用了baseUrl变量,但这个变量从来没有被定义过,浏览器找不到它就抛出了错误。下面给你几种简单有效的解决办法,按需选择就行:

方法1:在Blade视图中全局定义baseUrl

在你的Blade视图里(比如页面的<head>标签内,或者引入外部JS文件之前)添加一段脚本,用Laravel的url()辅助函数生成网站根地址并赋值给全局变量:

<script>
    // 定义全局的baseUrl变量,外部JS可以直接访问
    const baseUrl = "{{ url('/') }}";
</script>

这样你的外部JS文件里的baseUrl + "/post/post/ajax"就能正常拼接成完整的请求地址了。

方法2:直接在Blade中生成完整AJAX请求地址(更推荐)

既然你说可以把JS代码放到Blade视图里,那直接用Laravel的路由辅助函数生成完整的请求URL是最稳妥的方式,完全不需要依赖baseUrl变量:
修改你的AJAX代码里的url参数:

$.ajax({
    method: "POST",
    // 直接用Blade生成正确的路由地址
    url: "{{ url('/post/post/ajax') }}",
    data: { 
        unos: uneto, 
        _token: token 
    },
    // 其余代码不变...
});

这种方式避免了手动拼接URL的麻烦,也不容易出错,尤其是当你修改路由前缀的时候,不需要再手动调整JS里的地址。

方法3:通过HTML data属性传递baseUrl(适合坚持用外部JS的场景)

如果你还是想把JS放在外部文件里,可以在页面的某个元素(比如<body>)上添加data属性来传递baseUrl:

<body data-base-url="{{ url('/') }}">

然后在你的外部JS文件里获取这个值:

$(document).ready(function(){
    // 从data属性中获取baseUrl
    const baseUrl = document.body.getAttribute('data-base-url');
    
    $('#submitanketa').click(function(){
        // 后续代码里就可以正常使用baseUrl了
        $.ajax({
            url: baseUrl + "/post/post/ajax",
            // 其余代码不变...
        });
    });
});

小提示

顺便看了下你的控制器和模型代码,发现模型的ubacianketu()方法里插入的字段是id_kor,但模型类里定义的属性是$id_korisnik,这里要确保和数据库表的字段一致,避免数据插入失败哦。

内容的提问来源于stack exchange,提问作者skyhunter96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:30:37