Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX没有在Laravel中调用控制器方法_Javascript_Php_Jquery_Ajax_Laravel - Fatal编程技术网

Javascript AJAX没有在Laravel中调用控制器方法

Javascript AJAX没有在Laravel中调用控制器方法,javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,下面是我的刀片布局文件中的一些代码。这个刀片文件在我的视图中被多次调用,如@include.layout(“刀片文件链接”)。当按下按钮时,我希望调用我的控制器功能。这在没有AJAX的情况下是可行的。但是,当我将AJAX添加到混合中时,它不起作用 以下是刀片布局文件中的代码 <div class="element1"> <div class="text1"> <form action="{{ route("progressSheetDynam

下面是我的刀片布局文件中的一些代码。这个刀片文件在我的视图中被多次调用,如@include.layout(“刀片文件链接”)。当按下按钮时,我希望调用我的控制器功能。这在没有AJAX的情况下是可行的。但是,当我将AJAX添加到混合中时,它不起作用

以下是刀片布局文件中的代码

<div class="element1">
    <div class="text1">
        <form action="{{ route("progressSheetDynamic") }}" method="post" id="addActivity">
            <button type="submit" class="styleHover styleButton" name="increment" value="increment" > + </button>
            <input type="hidden" name="id" value= {{ $activities}}>
        </form>

        {{ $count  }} / {{  ($goal/5) }}
        <form action="{{route("progressSheetDynamic") }}" method="post" id="removeActivity">
            <button type="submit" class="styleHover styleButton" name="delete" value="delete"> - </button>
            <input type="hidden" name="id" value= {{ $activities }}>
        </form>
    </div>
</div>
到目前为止,一切正常,当我按下按钮时,控制器中调用了
addDeleteActivity
函数。现在,当我加入AJAX时,一切都崩溃了

下面是使用ajax的Javascript代码

<script>

$(document).ready(function(){
    $.ajaxSetup({
        headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
    });
});

$('#addActivity').submit(function(e){
    e.preventDefault();
    var data = $(this).serialize();
    $.post('progressSheetDynamic', data).done(function(response){
        console.log(data);
    });
});

$('#removeActivity').submit(function(e) {
    e.preventDefault();
    var data = $(this).serialize();
    $.post('progressSheetDynamic', data).done(function(response){
        console.log("deleting");
    });
}); 
</script>

$(文档).ready(函数(){
$.ajaxSetup({
标题:{'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]”)。attr('content')}
});
});
$('#addActivity')。提交(函数(e){
e、 预防默认值();
var data=$(this.serialize();
$.post('progressSheetDynamic',data).done(函数(响应){
控制台日志(数据);
});
});
$('#removeActivity')。提交(函数(e){
e、 预防默认值();
var data=$(this.serialize();
$.post('progressSheetDynamic',data).done(函数(响应){
控制台日志(“删除”);
});
}); 

console.logs在两个按钮的$.post函数中工作。但是,不再调用控制器中的addDeleteActivity函数

为了确保URL是相同的,您可以在没有AJAX的情况下设置相同的方式

试试这个:

$('#addActivity').submit(function(e){
    e.preventDefault();
    var data = $(this).serialize();
    $.post('{{ route("progressSheetDynamic")' }}, data).done(function(response){
        console.log(data);
    });
});

我还没有使用Laravel,但是我认为模板中的
{route(“progressSheetDynamic”)}
会生成一个URL,但是在您的post调用中,您只需调用progressSheetDynamic URL,这不是您需要的。是同一模板文件中的脚本,如果是这种情况,则尝试将post调用更改为:
$.post({route(“progressSheetDynamic”)},data)
我尝试了此操作,得到了相同的结果。事实上,我很惊讶我得到了同样的结果,因为帖子url应该被添加到标准url中。在url中传入“progressSheetDynamic”将返回myappurl/progressSheetDynamic。这是我的理解。检查您的控制台和网络选项卡。正在打电话吗?它是返回200消息,还是404/405?正在拨打电话。我在控制台中看到日志。您是否尝试控制台。记录响应以及服务器的响应?是的,我认为这是FoPi建议的。我试过了,都是一样的,你用的是什么版本?
$('#addActivity').submit(function(e){
    e.preventDefault();
    var data = $(this).serialize();
    $.post('{{ route("progressSheetDynamic")' }}, data).done(function(response){
        console.log(data);
    });
});