2015-09-29 74 views
2

我正在從窗體進行ajax調用,以將複選框數據發送到控制器。下面是相關的html代碼:ajax請求拋出405方法未找到錯誤(Laravel 5)

<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\[email protected]'); 

我可以證實,CSRF令牌被附加到dataString。表單數據也被附加到dataString。但是,jQuery拋出405錯誤。

我正在使用許多其他類似的ajax函數來獲取和發送數據。除了這個特殊的功能,一切都很完美當我空手而歸時,一些指針將非常感激。

+0

首先'405'不是jQuery錯誤,它是一個http錯誤。你最有可能得到這個錯誤,因爲你使用的表單url('http:// 192.168.1.25/nonresponsiveurl')不存在或不可訪問。你沒有做任何事來阻止表單的標準html提交。所以這是什麼讓你到'405'頁面,我想。 –

+0

爲了排除故障,我建議你提交沒有AJAX的表格,看看你得到了什麼...... – Digitlimit

+0

delBadURL是否存在於你的dashbooardController中? – Gokigooooks

回答

1

就像我在我的評論中所說的那樣,您的表單似乎以默認(HTML)方式提交。

以防止您可以使用jQuery事件處理。 爲了做到這一點,您應該首先從<input type="submit" ...>中刪除onclick屬性。
然後綁定的事件處理程序提交事件,並防止表單提交的默認行爲與preventDefault()

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

這種方法仍然不起作用。我得到405錯誤郵政http://192.168.1.25/dashboard 405(方法不允許)n.ajaxTransport.k.cors.a.crossDomain.send @ jquery.js:8625n.extend.ajax @ jquery.js:8161(匿名函數)@ VM34299:11n.event.dispatch @ jquery.js:4430n.event.add.r.handle @ jquery.js:4116 – hvs

+0

http://192.168.1.25/dashboard是我從中調用的URL腳本。 – hvs

+0

這裏沒有跨域請求,所以我不確定消息。 – hvs

0

我認爲你應該做的「URL」:'/一些文本/其它文本代替'url':'你的Ajax提交中的'some-text/another-text。這就是......在第一個url部分之前有一個/。這對我有效。

相關問題