ajax请求抛出405方法未找到错误(Laravel 5)

时间:2015-09-29 06:44:13

标签: jquery ajax laravel-5

我正在从表单进行ajax调用,以将复选框数据发送到控制器。这是相关的HTML代码:

 <form method="POST" action="http://192.168.1.25/nonresponsiveurl" accept-charset="UTF-8" class="del_form" id="del_form" name="del_form"><input name="_token" type="hidden" value="igr6iMt1WfeZunyG8wpyy1tNK1efgiclyOvZ1hkF">
  <input id="submit" type="submit" name="submit" value="Delete Checked Records" onclick="return submitDelForm();">
   <div class="table-responsive shadow-edge-nofill">

    <table class="table table-striped">
                    <tbody>
                    <tr>
            <td><input id="badURL0" class="bad_url_checkbox" name="bad_url_checkbox" type="checkbox" value="2"></td>

    etc....etc.....etc....

    </form>

以下是相关的javascript代码:

  <script type="text/javascript">
    function submitDelForm(){
        $('div#loadmoreajaxloader').show();
        var form = document.del_form;
        var dataString = $(form).serialize();
        $.ajaxSetup({
            headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
        });
        $.ajax({
            type: 'POST',
            URL: '/delbadurl',
            contentType: "application/json; charset=utf-8",
            data: {'serial_data' : dataString},
            success: function(data){
                $('div#loadmoreajaxloader').hide();
            }
        });
    }
</script>

以下是相关路线:

  Route::post('delbadurl','Admin\DashboardController@delBadURL' );

我可以确认CSRF令牌被附加到dataString。表单数据也被附加到dataString。但是,jquery抛出405错误。

我正在使用许多其他类似的ajax函数来获取和发送数据。除了这个特殊功能外,一切都很完美。当我空手而归时,我会非常感激一些指示。

2 个答案:

答案 0 :(得分:1)

像我在评论中所说的那样,您的表单似乎是以默认(HTML)方式提交的。

以防止您可以使用jQuery事件处理。 为此,您应首先从onclick删除<input type="submit" ...>属性 然后将事件处理程序绑定到submit-event并阻止使用preventDefault()的表单提交的默认行为:

$("#del_form").on("submit", function(event){
    event.preventDefault();
    //your ajax code goes here...
});

答案 1 :(得分:0)

我认为你应该在你的Ajax提交中使用'url':'/ some-text / another-text而不是'url':'some-text / another-text。那就是....有一个/在第一个网址之前。这对我有用。