2015-09-29 2 views
2

Я делаю вызов ajax из формы для отправки данных флажка контроллеру. Вот соответствующий HTML код:запрос ajax throwing 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. , чтобы сделать это, вы должны удалить атрибут onclick с вашего <input type="submit" ...>.
затем привязать обработчик событий к Submit-события и поведение по умолчанию представления формы с preventDefault():

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

Этот метод все еще не работает. Я получаю ошибку 405 POST 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': 'some-text/another-text в вашем представлении Ajax. Это ... есть/перед первой частью url. Это работало для меня.

Смежные вопросы