2017-07-02 135 views
0

我正在使用AJAX提交表單。表單在沒有AJAX的情況下使用常規方法工作。所有的路線都很好,形式正常。現在我發現在AJAX函數中需要提交我的表單。我已經像往常一樣寫AJAX提交的腳本。Laravel 5.4 AJAX表單郵政路由404錯誤

這裏是我的形式腳本:

 <div class="onpage-sold-input"> 
      {!! Form::open(['url' => route('sold.sold'),'class'=>'contact-form', 'id'=>'search-sold-button','method'=>'POST']) !!} 
       {!! Form::text('sold', old('sold'), array('class'=>'form-control', 'placeholder'=>'Qty.')) !!} 
       <input type="hidden" name="part_id" value="{{ $inventory->id }}"> 
       <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
       {!! Form::button('Sold', ['class' => 'btn btn-sm btn-success', 'id'=>'sold-button','type'=>'submit']) !!} 
      {!! Form::close() !!} 
     </div> 

野兔是AJAX腳本:

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

$('#sold-button').on('click', function (e) { 
e.preventDefault(); 

var form = $('#search-sold-button'), 
    data = form.serialize(), 
    ajax_url = 'sold/sold', 
    alert_section = $('.alert-section'); 

$.post(ajax_url, data, function (resp) { 
    alert_section.fadeIn().find('.alert').html(resp); 
    setTimeout(function() { 
     alert_section.fadeOut(); 
    }, 3000) 
}) 
}); 

這裏是路線:

Route::post('/sold/sold',['uses'=>'[email protected]', 'as'=>'sold.sold']); 

這是我正在錯誤控制檯:

POST http://localhost/backend_master/public/inventory/sold/sold 404 (Not Found) 

我不知道我在做什麼錯在這裏。

回答

1

你需要改變這一行:
ajax_url = 'sold/sold',

本:
ajax_url = form.attr('action'),

;)

+0

所有的工作,謝謝 –

0

可以使用php artisan route:list命令列出可用路由。如果您使用資源作爲對象,則用於保存銷售對象的路由名稱將爲sold.store

如果你不usre約航線名稱則不要使用路線()函數的形式action屬性,使用URL(「賣」)和方法=「後」,

但在你的Ajax代碼做以下更改

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

    $('#sold-button').on('click', function (e) { 
     e.preventDefault(); 

     var form = $('#search-sold-button'), 
     data = form.serialize(), 
     ajax_url = {! url('sold/sold' !}, 
     alert_section = $('.alert-section'); 

     $.post(ajax_url, data, function (resp) { 
     alert_section.fadeIn().find('.alert').html(resp); 
     setTimeout(function() { 
      alert_section.fadeOut(); 
     }, 3000) 
     }) 
    }); 

變化

如果您的路線是sold/sold然後用{! route('sold/sold')!}{! url('sold/sold') !}