Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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到laravel方法的ajax post中出现错误405_Javascript_Php_Ajax_Laravel - Fatal编程技术网

使用javascript到laravel方法的ajax post中出现错误405

使用javascript到laravel方法的ajax post中出现错误405,javascript,php,ajax,laravel,Javascript,Php,Ajax,Laravel,我试图通过btn点击创建一个post ajax请求,我得到了错误405。我搜索了一下,在我的文件头中包含了令牌部分 <meta name="csrf-token" content="{{ csrf_token() }}"> 在我的路线文件中我有这个 Route::post('/bebedouros/saveInfo/','BebedourosController@saveInfo'); 并且方法saveInfo存在于BebedourosController中 我还尝试在ajax

我试图通过btn点击创建一个post ajax请求,我得到了错误405。我搜索了一下,在我的文件头中包含了令牌部分

<meta name="csrf-token" content="{{ csrf_token() }}"> 
在我的路线文件中我有这个

Route::post('/bebedouros/saveInfo/','BebedourosController@saveInfo');
并且方法saveInfo存在于BebedourosController中

我还尝试在ajax设置中插入令牌,但什么都没有。有人知道另一个解决方案吗?看起来onclick正在调用该方法并返回301,然后返回405 bu,它在ajax请求中只输入一次调试器。

尝试以下操作:

标题:

<meta name="csrf-token" content="{{ csrf_token() }}" />
$.ajaxSetup({
  headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  }
});

希望有帮助。

看起来您的函数丢失了,或者您在ajax函数中没有给出正确的路径。说出路线的名字

Route::post('/bebedouros/saveInfo/','BebedourosController@saveInfo')->name('saveInfo');
然后在ajax函数中调用route函数

$.ajax({
            method: "POST",
            type: "POST",
            url:"{{ route('saveInfo') }}",
            data:{
                "_token": "{{ csrf_token() }}",        
                IdVisitaBebedouro:id,
                TipoBebedouro:tipoBebedouro,
                Higiene:higiene,
                Fluxo:fluxo,
                Comprimento:comprimento
            },
            processData:true,
            success: function(data){
                alert('informação gravada com sucesso');
            }
        });

可能的问题是分配的
类型
值将是
application/json
,但目前正在分配
POST
。POST仅对方法有效。还可以使用@arunj

提到的令牌信息修改ajax调用头,我已经尝试过了,但是谢谢。为我的路线设置一个名称并将该名称传递到“url”中解决了我的问题可能是因为我没有使用表单发生这种情况?通常我使用表单提交数据,但对于本节,我需要使用ajax请求而不是表单提交数据。。你能回答这个疑问吗?我认为ajax的
url
属性没有选择正确的路径,可能只是
/bebebedouros/saveInfo/
。这里我们给出了正确的路径,您可以在
页面源代码中查看。
$.ajax({
            method: "POST",
            type: "POST",
            url:"{{ route('saveInfo') }}",
            data:{
                "_token": "{{ csrf_token() }}",        
                IdVisitaBebedouro:id,
                TipoBebedouro:tipoBebedouro,
                Higiene:higiene,
                Fluxo:fluxo,
                Comprimento:comprimento
            },
            processData:true,
            success: function(data){
                alert('informação gravada com sucesso');
            }
        });