2016-05-10 13 views
4

Ich mache eine POST-Anfrage, aber außer einer 422 Antwort kann ich nichts bekommen.Warum erhalte ich einen 422 Fehlercode?

Vue.js Client-Code:

new Vue({ 
    el: '#app', 

    data: { 
    form: { 
     companyName: '', 
     street: '', 
     city: '', 
     state: '', 
     zip: '', 
     contactName: '', 
     phone: '', 
     email: '', 
     numberOfOffices: 0, 
     numberOfEmployees: 0, 
    } 
    }, 

    methods: { 
    register: function() { 
     this.$http.post('/office-depot-register', this.form).then(function (response) { 

     // success callback 
     console.log(response); 

     }, function (response) { 

     // error callback 
     console.log(response); 

     }); 
    } 
    } 
}); 

Laravel Routen:

Route::post('/office-depot-register', ['uses' => '[email protected]', 'as' => 'office-depot-register']); 

Laravel Controller:

public function register(Request $request) 
{ 
    $this->validate($request, [ 
     'companyName' => 'required', 
     // ... 
    ]); 

    // ... 
} 
+1

Von dem, was ich sagen kann, Laravel zurücksenden ein 422 bedeutet, dass die Anfrage nicht Validierung Anforderungen erfüllen. (ZB fehlendes Pflichtfeld, andere Validierungsfehler) http://stackoverflow.com/questions/34966690/error-422-unprocessable-entity-in-laravel-with-ajax Da Sie 'companionName' benötigt haben, aber haben Sie es als leere Zeichenfolge, das könnte das Problem verursachen. –

+1

Das ist es genau. Hinterlasse deinen Kommentar als Antwort und ich werde es akzeptieren. – Donnie

+0

Ich bin froh, dass ich helfen konnte :) –

Antwort

2

Lar Mit avel können Sie bestimmte Validierungen für akzeptierte Felder definieren. Wenn Sie diese Validierungen nicht bestehen, wird HTTP 422 - Unprocessable Entity zurückgegeben. In Ihrem speziellen Fall scheint es, dass Sie Ihre eigenen Validierungstests mit einem leeren skelettierten Objekt nicht bestehen, da companyName erforderlich ist und eine leere Zeichenfolge die erforderliche Validierung nicht besteht.

Unter der Annahme, dass die anderen Felder ähnlich validiert sind, sollte ein gefülltes Datenobjekt Ihr Problem lösen.

data: { 
    form: { 
    companyName: 'Dummy Company', 
    street: '123 Example Street', 
    city: 'Example', 
    state: 'CA', 
    zip: '90210', 
    contactName: 'John Smith', 
    phone: '310-555-0149', 
    email: '[email protected]', 
    numberOfOffices: 1, 
    numberOfEmployees: 2, 
    } 
} 
Verwandte Themen