2017-10-03 1 views
0

übergeben wird Ich habe Schwierigkeiten, meinen Fehler msg "Von Datum muss vor bis heute festgelegt werden", durch Controller zu Ajax Anruf. Fehlermeldung muss in div als Warnung angezeigt werden. Der folgende Code funktioniert nicht.Anzeige von Text von Ajax Anruf, der von Controller

Controller:

$response_array['error'] = [trans('servicereports.errors.to_date')]; 
return json_encode($response_array); 

Ergebnis:

{ "Fehler": [ "Von Datum festgelegt, bevor auf dem neuesten Stand sein"]}

Ajax:

$.ajax({ 
      type: 'POST', 
      url: '{{ route('einsight.servicereports.validateDates') }}', 
      cache: false, 
      data: $(this).serialize(), 
      error: function(msg, result) {      
       var data = jQuery.parseJSON(result); 
       $.each(data, function(index, value) { 
        $("#error-message").append(value); 
       }); 

      } 
     }); 

Div für di spreizen Nachrichten:

<div class="flash-message" id="error-message">    
</div> 

Antwort

1

Sie Handaling Fehler in der falschen Art und Weise. In Ajax error Methode wird nur anrufen, wenn es einen Fehler in ajax Aufruf gibt. bis der Code erfolgreich ausgeführt haben Sie es in Erfolgsfunktion zu handhaben

$.ajax({ 
      type: 'POST', 
      url: '{{ route('einsight.servicereports.validateDates') }}', 
      cache: false, 
      data: $(this).serialize(), 
      success: function(result) {      
       var data = jQuery.parseJSON(result); 
       $.each(data, function(index, value) { 
        $("#error-message").append(value); 
       }); 

      } 
     }); 
+0

Code in meinem Controller ist in Ordnung? Da ich den Fehler in Ajax – ZeroZek

+0

ja nicht auslösen kann, kann seine feine Fehlerbehandlung auch durch Serverseite getan werden, die yiu tun –

1

können Sie nur response(400)->json($data) verwenden, um die JSON mit den richtigen Header zurück:

$response_array['error'] = [trans('servicereports.errors.to_date')]; 
return response(400)->json($response_array); 

Da Sie den Statuscode 400 senden, Sie werden Ihre error Funktion auslösen. Dann müssen Sie es auch nicht analysieren, weil es bekannt ist json:

$.ajax({ 
     type: 'POST', 
     url: '{{ route('einsight.servicereports.validateDates') }}', 
     cache: false, 
     data: $(this).serialize(), 
     error: function(msg, response) {    
      $.each(response.error, function(index, value) { 
       $("#error-message").append(value); 
      }); 

     } 
    }); 
Verwandte Themen