【发布时间】:2017-06-27 11:01:32
【问题描述】:
我在 laravelcollective 上,我想提交一个帖子请求 但我明白了
VerifyCsrfToken.php 中的 TokenMismatchException(第 68 行)
这是我的代码:
function storeUser(url) {
var name = $('input[name=name]').val() ;
var email = $('.email').val() ;
var password = $('.password').val() ;
var role_id = $('select[name=role_id]').val () ;
var barangay_id = $('select[name=barangay_id]').val () ;
var status = $('select[name=status]').val();
console.log(barangay_id) ;
$.ajax({
method : 'POST',
url : url ,
data :
{
role_id : role_id ,
email : email ,
name : name ,
password : password ,
barangay_id : barangay_id ,
status : status ,
},
success : function (data) {
swal({
title: "Success",
text: "User saved successfuly",
type: "error",
confirmButtonColor: "#66cc99"
});
} ,
error: function (xhr,reason,ex)
{
if (xhr.status == 500){
swal({
title: "500",
text: "Internal Server",
type: "error",
confirmButtonColor: "#66cc99"
});
}
if(xhr.status == 422){
var data = xhr.responseJSON ;
for(let i in data) {
console.log(i,data[i][0]) ;
swal({
title : '422',
text : 'Fill all the fields properly' ,
type: 'error' ,
confirmButtonColor: "#66cc99"
})
}
}
}
})
}
这是我的表单的 sn-p :
<div class="form-group">
<label for="input-text" class="col-sm-2 control-label">Full Name</label>
<div class="col-sm-10">
{!! Form::text('name', null, ['id'=>'input-text','class'=>'form-control full-name','placeholder'=>'e.g Juan De la Cruz']) !!}
</div>
</div>
<div class="form-group">
<label for="input-text" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
{!! Form::email('email' , null, ['id'=>'input-text','class'=>'form-control email','placeholder'=>'e.g testemail@email.com']) !!}
<span class="availability"></span>
</div>
</div>
<div class="form-group">
<label for="input-text" class="col-sm-2 control-label">Password</label>
<div class="col-sm-10">
{!! Form::text('password',null,['class'=>'form-control password']) !!}
</div>
</div>
<div class="form-group">
<label for="input-text" class="col-sm-2 control-label">Role </label>
<div class="col-sm-10">
<select class="form-control" name="role_id">
@foreach ($roles as $role )
<option value="{{ $role->id }}">{{ $role->name }}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label for="input-text" class="col-sm-2 control-label">Barangay </label>
<div class="col-sm-10">
<select class="form-control" name="barangay_id">
@foreach($barangays as $barangay )
<option value="{{ $barangay->id }}">{{ $barangay->name }}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label for="input-text" class="col-sm-2 control-label">Status : </label>
<div class="col-sm-10">
<select class="form-control" name="status">
<option value="1">Activate</option>
<option value="0">Pending</option>
</select>
</div>
</div>
{!! Form::submit($submitButtonText, ['class' => 'btn btn-success pull-right submitBtn']) !!}
这是我的控制器
public function store(StoreUserRequest $request) {
$user = User::create(request(['role_id','email','name','password','barangay_id','status'] )) ;
return response()->json($user) ;
}
为什么我在使用 ajax 时会收到内部服务器错误 500。我的代码中有错误吗?
【问题讨论】:
-
您没有在数据中发送
token。这就是为什么。 -
我必须传递令牌吗?
-
在这里查看laravel.com/docs/5.4/csrf#csrf-x-csrf-token 以获得比链接答案更好的解释。它包含您需要的所有代码,只需 RTM
-
我在使用 laravel 集体为什么我必须做 csrf_field()b la2