Quiero agregar algo a la base de datos usando Ajax. Tengo un enlace que envía el formulario y luego la llamada Ajax debería funcionar, pero no lo es. Uso esta misma llamada Ajax en una página diferente, pero en ese formulario estoy usando un botón simple con tipo de envío. Pero en esta página, quiero enviar con...
esta es la forma
{!! Form::open(['id' => 'ajax-form', 'style' => 'float:right']) !!} <input type="hidden" name = "idUser" id="idUser" value="{{Auth::user()->id}}"> <input type="hidden" name = "idCampaign" id="idCampaign" value="{{$campaign->id}}"> <a class="fa fa-bookmark fa-2x" onclick="document.getElementById('ajax-form').submit();" aria-hidden="true" href="javascript:{}" style="color:#fd8809"></a> {!! Form::close() !!}Este es el Ajax:
$("#ajax-form").submit(function(event) { event.preventDefault(); var form = $(this); $.ajax({ type: "post", url: "{{ url('addFavorites') }}", dataType: "json", data: form.serialize(), success: function(data){ if(data.status == 'failedd'){ swal("Error!", "You have already added this campaign to favorites! If you want to remove it, go to your Favorites list page", "error") } else{ swal("Success!", "You added the campaign "+ data.idCampaign + " to favorites!", "success") } }, error: function(data){ swal("Error!", "error") }, complete: function (data) { } }); }); Cuando hago clic en este enlace, me redirige a otra página que arroja: MethodNotAllowedHttpException .
Cambie su url ajax a esto:
url: '/addFavorites',y tu ruta a esto:
Route::post('/addFavorites', 'SearchController@addFavorites');Solo para asegurarse de que apunta a la misma URL
EDITAR:
asegúrese de tener una ruta con get y la misma ruta con post . Ver abajo:
Route::get('/addFavorites', 'SearchController@loadFavorites'); <-para cargar la página
Route::post('/addFavorites', 'SearchController@submitFavorites'); <-para enviar los datos
Cambia esto: $("#ajax-form").submit(function(event) {
A esto: $('#yourid').click(function(){
Elimine el onclick en el elemento 'a' y agregue el id='yourid' con el nombre que desee.
MethodNotAllowedHttpException generalmente aparece cuando no ha definido la ruta o ha definido la ruta para el método de obtención y está utilizando la ruta para el método de publicación. por favor revisa tus rutas.php