我目前在使用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()!!}
答案 0 :(得分:0)
当您的应用程序处于调试模式时,会显示详细的错误消息 堆栈跟踪将显示在您的内容中发生的每个错误上 应用。如果禁用,则会显示一个简单的通用错误页面。 GO -config / app.php第29行
&#39;调试&#39; =&GT; env(&#39; APP_DEBUG&#39;,启用),
它将有助于查看浏览器上发生的代码。
确保在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},