Laravel表单提交随机停止工作


Laravel form submission randomly stops working

我的laravel应用程序目前有一个奇怪的问题。在任意时刻,我提交的表格将停止处理我的所有表格。我查看了Chrome开发工具并关注了网络活动,它似乎正确地完成了所有内容,但它并没有提交我的表单,而是似乎刷新了页面。如果我有故意的验证错误,它们不会显示在任何地方。如果一切都是正确的,它只是将表单重新加载为空。它只发生在表单上,我的Ajax请求工作。

一周前,当我将应用程序的实时版本上传到我正在开发的服务器上供人们使用后,我第一次遇到了这种情况。第二天回来后,我意识到一切都在正常工作,我没有改变任何事情。

现在又发生了,这次是在我唯一使用的开发版本上。我的任何表格都不会提交,只是刷新页面。我完全不知道是什么导致了这种情况,也不知道为什么会发生这种情况,并随机自行解决,这让我抓狂,因为在这种情况下,我几乎什么都做不了。

有没有类似的事情发生在任何可以帮助我解决的人身上,或者有人知道为什么会发生这种情况吗?

以下是我进行验证的一个请求中的一些代码:

<?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'
        ];
    }
}

以下是打开我的表单和提交按钮的示例:

{!! Form::open(['action' => ['JobController@store'], '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()!!}
  1. 当您的应用程序处于调试模式时,带有的详细错误消息堆栈跟踪将显示在您的应用如果禁用,将显示一个简单的通用错误页面。GO-config/app.php行编号29

    "debug"=>env('APP_debug',启用(,

这将有助于在浏览器上查看发生了什么代码。

确保在routes.php 上添加POST路由

Route::post('url','JobController@store');

检查您的Ajax帖子是否正常

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

有一段时间发生了,在发布数据时丢失了令牌。在每个ajax调用上添加令牌,其中包含发布的数据

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

我知道现在回复已经太晚了,但仍然可以帮助别人。我也有同样的问题。我有一些资源控制器在admin前缀内注册,而它的存储方法在组前缀外用于表单提交,这导致了这种奇怪的行为。我只是简单地将except("存储"(方法添加到资源中,现在它运行良好。