Javascript 获取Laravel Ajax中的内部错误500
我正在尝试创建一个添加表单,这样当他们单击submit时页面就不会刷新。AJAX似乎是实现这一点的工具。但是,当我单击submit按钮时,我得到了内部错误500。代码如下: 服务类型.blade.php 我还向主刀片模板添加了Javascript 获取Laravel Ajax中的内部错误500,javascript,jquery,ajax,laravel-5.3,Javascript,Jquery,Ajax,Laravel 5.3,我正在尝试创建一个添加表单,这样当他们单击submit时页面就不会刷新。AJAX似乎是实现这一点的工具。但是,当我单击submit按钮时,我得到了内部错误500。代码如下: 服务类型.blade.php 我还向主刀片模板添加了 我尝试将'X-CSRF-TOKEN':$('[name=“\u TOKEN”]').val()更改为'X-CSRF-TOKEN':$('meta[name=“CSRF TOKEN”]')。attr('content')。我还尝试将更改为。我尝试将{{csrf_field(
我尝试将
'X-CSRF-TOKEN':$('[name=“\u TOKEN”]').val()
更改为'X-CSRF-TOKEN':$('meta[name=“CSRF TOKEN”]')。attr('content')
。我还尝试将
更改为
。我尝试将{{csrf_field()}}
添加到表单中。我尝试在控制器内部的try-catch中回显异常。我尝试将两个单选按钮的ID重命名为stat
,并将status:$(
更改为status:$(
它们都不起作用。捕捉块没有回声(或显示警报)。当我单击提交时,总是会显示错误swal()
和console.log()
。我尝试添加return false
,但还是不起作用。我的代码怎么了?如果你在[Google chrome控制台]中检查你的[Network]选项卡,你在提交[form]时看到你的[/service type]url了吗?是的,在网络选项卡中有一个条目“service type”,检查该url,看看在[Response]或[Preview]上是否有给定的消息@BryanJames,你需要点击它。在[ajax],尝试添加此属性(数据类型:“json”)。刷新,然后调试控制器中的问题
{!!Form::open(['id' => 'frm-add'])!!}
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
<script type="text/javascript">
$(document).ready(function () {
$('#iconModal').modal('show');
});
</script>
@endif
<div ng-controller="serviceTypeController">
<div class="form-group row">
<label class="col-md-3 label-control" for="eventRegInput1">*Names</label>
<!-- <label>[[service.typename]]</label> -->
<div class="col-md-9">
{!! Form::text('typeName', null, ['id' => 'name',
'class' => 'form-control',
'ng-model' => 'service.typename',
'placeholder' => 'eg.Health',
'maxlength' => '20', 'required',
'data-toggle' => 'tooltip',
'data-trigger' => 'focus',
'data-placement' => 'top',
'data-title' => 'Maximum of 20 characters',
'minlength' => '5',
'pattern' => '^[a-zA-Z0-9-_ ]+$']) !!}
</div>
</div>
<div class="form-group row">
<label class="col-md-3 label-control" for="eventRegInput1">Description</label>
<div class="col-md-9">
{!! Form::textarea('desc', null, ['id'=>'desc',
'class' => 'form-control',
'ng-model' => 'service.desc',
'maxlength' => '500',
'data-toggle' => 'tooltip',
'data-trigger' => 'focus',
'data-placement' => 'top',
'data-title' => 'Maximum of 500 characters']) !!}
</div>
</div>
<div class="form-group row last">
<label class="col-md-3 label-control">*Status</label>
<div class="col-md-9">
<div class="input-group col-md-9">
<label class="inline custom-control custom-radio">
<input type="radio" id="actstat" value="active" name="stat" checked="" class="custom-control-input" ng-model="service.status">
<span class="custom-control-indicator"></span>
<span class="custom-control-description ml-0">Active</span>
</label>
<label class="inline custom-control custom-radio">
<input type="radio" id="actstat" value="inactive" name="stat" class="custom-control-input" ng-model="service.status">
<span class="custom-control-indicator"></span>
<span class="custom-control-description ml-0">Inactive</span>
</label>
</div>
</div>
</div>
</div>
<script>
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('[name="_token"]').val()
}
});
$('#frm-add').submit(function(event) {
$.ajax({
url: "{{ url('/service-type/store') }}",
type: "POST",
data: {typeName: $("#name").val(),
typeDesc: $("#desc").val(),
archive: $("input[id=actstat]:checked").val(),
status: 1},
success: function ( _response ){
swal("Successful",
"Service type has been added!",
"success");
console.log("Success");
event.preventDefault();
},
error: function(xhr, status, error) {
var err = xhr.responseText;
swal("ERROR",
"Error has been caughts:\n" + err.Message,
"error");
console.log("Error found: " + error);
event.preventDefault();
}
})
.done(function( _data ) {
console.log(data);
event.preventDefault();
});
event.preventDefault();
});
</script>
<input type="submit" class="btn btn-success" value="Add" name="btnAdd">
<button type="button" data-dismiss="modal" class="btn btn-warning mr-1">Cancel</button>
{!! Form::close() !!}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use \App\Models\Servicetype;
use \Illuminate\Validation\Rule;
class ServiceTypeController extends Controller
{
public function index() {
$serviceTypes = ServiceType::select('typeID', 'typeName', 'typeDesc', 'status')
-> where([
['archive', '=', 0]
])
-> get();
return view('service-type') -> with('serviceTypes', $serviceTypes);
}
public function store(Request $r) {
try{
$this->validate($r, [
'typeName' => 'required|unique:servicetypes|max:20',
]);
if($_POST['stat']=="active")
{
$stat = 1;
}
else if($_POST['stat']=="inactive")
{
$stat = 0;
}
$aah = ServiceType::insert(['typeName'=>trim($r->typeName),
'archive'=>0,
'typeDesc'=>$r->desc,
'status'=>$stat]);
} catch (Exception $exp) {
// echo "<script>console.log('Exception Caught!\\n' + " . $exp . ");</script>";
}
return back();
}
public function getEdit(Request $r) {
if($r->ajax())
{
return response(ServiceType::find($r->typeID));
}
}
public function edit(Request $r)
{
$type = ServiceType::find($r->input('type_ID'));
$type->typeName = $r->input('typeName');
$type->typeDesc = $r->input('type_desc');
$type->status = $r->input('stat');
$type->save();
return redirect('service-type');
}
public function delete(Request $r)
{
$type = ServiceType::find($r->input('typeID'));
$type->archive = true;
$type->save();
return redirect('service-type');
}
}
Route::get('/service-type/getEdit', 'FacilityTypeController@getEdit');
Route::post('/service-type/store', 'FacilityTypeController@store');
Route::post('/service-type/update','FacilityTypeController@edit');
Route::post('/service-type/delete','FacilityTypeController@delete');
Route::resource('/service-type', 'ServiceTypeController');