MethodNotAllowedHttpException:使用Ajax Laravel调用POST方法

时间:2016-07-21 04:14:59

标签: php jquery ajax http-post laravel-5.2

我正在尝试对Laravel post方法进行ajax调用。但我得到 MethodNotAllowedHttpException 。其中一个可能的问题可能是ajax调用和路由控制器中的请求类型不匹配,但事实并非如此。

使用邮递员,我可以确认邮政路线工作正常。这让我可以选择专注于AJAX调用。

问题#1

routes.php文件

Route::post('/test', 'HomePageController@test');

custom.js

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

然后,

$('#teacher-save-submit').click(function(){

  var fname = $('#first_name').val();
  var lname = $('#last_name').val();
  var email = $('#email').val();
  var passkey = $('#passkey').val();

  $.ajax(function(){        
    type:"POST",
    url:"/test",
    dataType: "json",
    success:function(data){
      console.log("success");
      $('#sbt-result').html(data);
     }
   });
});

#Issue#2

在控制台中,它在url显示未捕获的SyntaxError:意外的令牌::“/ test”

如果你能分享你的经历,那就太棒了。

感谢。

修改

这是我得到的具体错误。我认为这是在搜索一些GET方法而不是帖子error_produced

2 个答案:

答案 0 :(得分:0)

更改

^(?=\/page-title\/?\??(?!(.+\/)|-)).+

JS:

Route::post('test', 'HomePageController@test');

并阻止默认点击事件

url:"{{url('test')}}",

答案 1 :(得分:0)

也许你已经忘记了“meta”标签:

<meta name="csrf-token" content="{{ csrf_token() }}" />