2016-08-23 1 views
0

Ich habe derzeit ein seltsames Problem mit meiner Laravel-Anwendung. An zufälligen Punkten wird meine Formularübergabe aufhören, an allen meinen Formularen zu arbeiten. Ich checke in den Chrome-Entwicklertools ein und folge den Netzwerkaktivitäten und es scheint alles korrekt zu durchlaufen, aber anstatt mein Formular zu senden, scheint es nur die Seite zu aktualisieren. Wenn ich absichtlich Überprüfungsfehler habe, werden sie nirgendwo angezeigt. Wenn alles korrekt ist, wird das Formular nur neu geladen. Es passiert nur auf Formularen, meine Ajax-Anfragen funktionieren.Laravel Form Unterordnung funktioniert nicht mehr

Es ist mir vor einer Woche zum ersten Mal passiert, nachdem ich eine Live-Version meiner Anwendung auf den Server hochgeladen habe, an dem ich gerade arbeite. Kam am nächsten Tag zurück, um zu erkennen, dass alles funktionierte, wie es sollte, ohne dass ich etwas änderte.

Es passiert jetzt wieder, diesmal auf der Entwicklerversion, die ich als einzige benutze. Keines meiner Formulare wird gesendet, sondern stattdessen die Seite aktualisiert. Ich kann absolut nicht herausfinden, was das verursacht und warum es zufällig passiert und sich zufällig löst und es macht mich verrückt, da ich so ziemlich nichts tun kann, solange es das tut.

Hat irgendjemand etwas Ähnliches passiert, das mir helfen könnte, es zu lösen, oder weiß jemand, warum das passieren könnte?

Hier ist ein Code von einem meiner Anfragen, wo ich meine Validierung tun:

<?php 

namespace App\Http\Requests; 

use App\Http\Requests\Request; 

class JobRequest extends Request 
{ 
    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'project_name' => 'required', 
      'end_date' => 'required|date|after:yesterday', 
      'end_time' => array('required', 'regex:/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/'), 
      'delivery_date' => 'required|date|after:yesterday', 
      'delivery_time' => array('required', 'regex:/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/'), 
      'advisor.0' => 'min:1', 
      'advisor.1' => 'different:advisor.0', 
      'job_type' => 'min:1', 
      'text_other_job_type' => 'required_if:other_job_type,1', 
      'project_desc' => 'required', 
      'name_client' => 'required' 

     ]; 
    } 
} 

Hier ein Beispiel für die Eröffnung meiner Form ist und die Submit-Buttons:

{!! Form::open(['action' => ['[email protected]'], 'id' => 'add_project', 'method' => 'post', 'name' => 'add_project', 'files'=>true])!!} 
    <input type="hidden" name="edit_job" value=0> 
      @include('pages.job.form', ['isEdit' => false]) 
      <div class=""> 
      <div class="col-sm-offset-3 col-sm-7 btn_group"> 
       <button type="submit" class="btn btn-default arrow_link_right" value="store" name="store">{{ trans('add_job.submit') }}<span ></span></button> 
       <button type="submit" class="btn btn-default" onclick="add_project.action='{{URL::route('storeTemplate')}}'; return true;" value="template" name="templateSub" formnovalidate>{{ trans('add_job.saveTemplate') }}</button> 
       <button type="button" class="btn btn-default" onclick="reset_form('add_project');" >{{ trans('add_job.reset') }}</button> 
      </div> 
     </div> 
     {!! Form::close()!!} 
+0

Verwenden Sie CSRF-Token? – Mantas

+0

Ich habe keine Erfahrung mit Laravel, und Sie haben keinen Code oder was Sie versucht haben (was Sie sollten), aber ich würde empfehlen, einen Blick auf welche Daten gesendet werden. Es könnte sein, dass ungültige Informationen vorhanden sind, sodass die gesamte Eingabe ignoriert wird. – jhmckimm

+0

Welche Version von Laravel? Können Sie Ihren Validierungscode posten? –

Antwort

0
  1. Wenn sich Ihre Anwendung im Debug-Modus befindet, werden bei jedem Fehler in Ihrer Anwendung detaillierte Fehlermeldungen mit Stack-Traces angezeigt. Wenn deaktiviert, wird eine einfache generische Fehlerseite angezeigt. GO -config/app.php Linie num 29

    'debug' => env ('APP_DEBUG' aktivieren),

es wird helfen, zu sehen, was Code passiert auf Browser.

machen hinzufügen sicher POST Route auf routes.php

Route::post('url','[email protected]'); 

überprüfen Sie Ajax Beitrag ist ok

$.ajax({ 
    type: "POST", 
    url: 'url', 
    data: {data} 
    success: function(data) { 

    } 
}); 

einige Zeit geschehen ist, fehlt Token während Post-Daten. Add Token bei jedem Ajax Anruf mit Daten, die Buchung ist

data: {'_token': $('input[name=_token]').val(),other data},