2017-02-25 2 views
2

Ich möchte der Benutzer benachrichtigt werden, wenn ein Validierungsfehler von PHP ist. Ich benutze Laravel 5.3, um das Formular und Ajax zu erstellen, um die Fehlermeldung zu erhalten.Ajax gibt undefined auf console.log (Fehler) - php serverseitige Validierung

hier ist mein JavaScript-Code

$.ajax({ 
    url: '/artistPost', 
    type:'POST', 
    data: { 
     _token: Artisttoken, 
     Name: Name, 
     Phone: Phone, 
    }, 

    error:function (data, response, xhr, status, error) { 
     var errors = data.responseJSON; 
     console.log(errors); 
    } 

das ist, was ich in dem Abschnitt Netzwerk der Chrome deveper Tools sehe

<?php{"name":["The name field is required."],"phone":["The phone field is required."]} 

und das ist, was ich in der Konsole sehe enter image description here

Aktualisieren

dies ist von die Steuerung

public function create(ArtistRequest $request){ 

    dd($request->all()); 


    return redirect()->back(); 
} 
+0

Ist das alles von Ihrem PHP-Code für artistPost? oder ist es die Ausgabe? – Theo

+0

ist die Ausgabe, wenn ich auf Speichern klicke –

+0

Können wir den Code sehen, der diese Ausgabe produziert? – Theo

Antwort

1

Ihr Server nicht <?php als Teil werden soll, sendet es Antwort - dies entweder läßt vermuten, dass der Server nicht die Datei als PHP-Parser, oder Sie hallt einen <?php Tag irgendwie.

Dieser Beitrag scheint ein sehr ähnliches Problem zu adressieren:

https://laracasts.com/discuss/channels/general-discussion/php-tag-in-ajax-response?page=1

Blick insbesondere auf diese Antwort:

RouteServiceProvider.php enthält:

public function map(Router $router) { $router->group(['namespace' => $this->namespace], function ($router) { foreach (File::allFiles(app_path('Http/Routes')) as $partial) { require_once($partial->getPathname()); } }); }

Einer der Routendatei s geladen mit der obigen Methode hat derzeit nichts außer einem <?php Tag und NO NEW LINE. Das Fehlen einer neuen Linie war das Problem. Fügte einen Kommentar zur Datei hinzu und alles funktioniert perfekt. Ich weiß nicht, warum das auf dem Produktionsserver eher ein Problem war als lokal. Die PHP-Versionen sind beide 5.6.

0

Sie sollen einen json-Ausgang vom Controller zurückgeben. ZB:

Sie sollten ein if/else haben, damit Sie Erfolg und Fehler erfassen können.

Verwandte Themen