Laravel 4 - Uncaught TypeError:无法读取未定义的属性“post”

时间:2014-07-10 11:38:12

标签: javascript jquery laravel laravel-4

我有这个脚本:

<script>
    function selectModSetProd(prodId,setId,objControl){

        function ifOK(r){
            objControl.style.background="'"+r.color+"'";
        }

         function ifError(e){
            alert('An error occurred when making the request: '+e.statusText);
        }

        function petition(prodId,setId,objControl){

            var data = {
               prod: prodId,
               set: setId,
            };

            var post = $.post("sql.php", data, ifOK, 'json');
            post.error(ifError);       

        }

       var set = objControl.value;
       if(confirm("Are you sure to start "+set+"?"))

            petition(prodId,setId,objControl);          
    }
</script>

在laravel 4中,但我有这个错误:&#34;未捕获的TypeError:无法读取属性&#39; post&#39;未定义&#34;

有人可以帮我解决这个错误吗?

2 个答案:

答案 0 :(得分:1)

用这个

包装你的脚本
$(document).ready(function() {

});

$。在装入角度之前,帖子无效。

您的代码应为:

$(document).ready(function() {
function selectModSetProd(prodId,setId,objControl){

    function ifOK(r){
        objControl.style.background="'"+r.color+"'";
    }

     function ifError(e){
        alert('An error occurred when making the request: '+e.statusText);
    }

    function petition(prodId,setId,objControl){

        var data = {
           prod: prodId,
           set: setId,
        };

        var post = $.post("sql.php", data, ifOK, 'json');
        post.error(ifError);       

    }

   var set = objControl.value;
   if(confirm("Are you sure to start "+set+"?"))

        petition(prodId,setId,objControl);          
}
});

答案 1 :(得分:1)

你最有可能收到帖子错误,因为$ .post试图转到你的laravel路由中没有定义的sql.php。

将您的脚本从sql.php更新为{{url()。&#39; / sql&#39;}}

并添加一条sql路由到laravel路由。

这是一个简单的解决方案,或者你可以创建一个更安静的方法来处理你的ajax路由和控制器。更多信息位于laravel.com

顺便说一句,你应该总是包装你的jquery,以确保它像我之前发布的那样加载。