我正在使用ajax将数据保存到laravel中的用户表中。我创建了API,并在发布成功消息的地方运行它。但是,当我尝试使用Ajax保存数据时,会显示此消息
“此路由不支持POST方法。受支持的方法:GET,HEAD。”
我的控制器代码是
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email',
'password' => 'required',
'phone' => 'required',
'country' => 'required',
'state' => 'required',
'purpose' => 'required',
'package' => 'required',
'months' => 'required',
'quantity' => 'required',
'amount' => 'required',
'user_status' => 'required',
]);
if ($validator->fails()) {
return response()->json(['error'=>$validator->errors()], 401);
}
$input = $request->all();
$input['password'] = bcrypt($input['password']);
$user = User::create($input);
$success['token'] = $user->createToken('MyApp')-> accessToken;
$success['name'] = $user->name;
return response()->json(['success'=>$success], $this-> successStatus);
}
我的路线是
Route::post('register', 'API\UserController@register');
刀片文件代码为
<form id="frmAddTask" action="#" method="post" enctype="multipart/form-data" action="javascript:void(0)">
@csrf
<h2>Order Information</h2>
<div class="row">
<div class="col-md-3">
<div class="form-group">
<label class="control-label required" for="package">Package</label>
<select id="package" name="package" class="form-control">
<option value="basic" selected="selected">Basic</option>
<option value="regular">Regular</option>
<option value="infinite">Infinite</option>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="control-label required" for="months">Months</label>
<select id="months" name="months" class="form-control">
<option value="1" selected="">1 months</option>
<option value="4">4 months</option>
<option value="12">12 months</option>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="control-label required" for="quantity">Quantity</label>
<select id="quantity" name="quantity" class="form-control">
<option value="1" selected="selected">1</option>
<option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option>
<option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option>
<option value="10">10</option>
</select>
</div>
</div>
<div class="col-md-3 ">
<label class="control-label required" for="amount">Amount</label>
<div class="input-group">
<span class="input-group-addon">INR</span>
<select id="amount" name="amount" class="form-control">
<option value="1" selected="">2500</option>
<option value="4">4000</option>
<option value="12">7000</option>
</select>
</div>
</div>
</div>
</div>
<hr>
<h2>Billing Information</h2>
<div class="row">
<div class="col-md-6 form-group">
<label for="name">Name:</label>
<input type="text" class="form-control" name="name" id="name">
</div>
<div class="col-md-6 form-group">
<label for="email">Email:</label>
<input type="text" class="form-control" name="email" id="email">
</div>
<div class="col-md-6 form-group">
<label for="confirm">Confirm Email:</label>
<input type="text" class="form-control" name="confirm" id="confirm">
</div>
<div class="col-md-6 form-group">
<label for="phone">Phone:</label>
<input type="text" class="form-control" name="phone" id="phone">
</div>
<div class="col-md-6 form-group">
<label for="country">Country:</label>
<input type="text" class="form-control" name="country" id="country">
</div>
<div class="col-md-6 form-group">
<label for="state">State:</label>
<input type="text" class="form-control" name="state" id="state">
</div>
<div class="col-md-6 form-group">
<label for="phone">Address:</label>
<textarea class="form-control"></textarea>
</div>
<div class="col-md-6 form-group">
<label for="purpose">Purpose</label>
<select id="purpose" name="purpose" value="" class="form-control ">
<option>Select Purpose</option>
<option value="parent">Parent</option>
<option value="employmee">Employmee</option>
</select>
</div>
<div class="col-md-12 form-group">
<input id="btn-add" type="submit" value="Make Payment" class="btn-success">
</div>
<!--button type="submit" class="btn btn-default">Submit</button--->
</div>
</form>
我的Ajax请求是
<script>
$(document).ready(function(){
$('#btn-add').click(function(e){
e.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
}
});
$('#btn-add').html('Sending..');
/* Submit form data using ajax*/
$.ajax({
url: "http://localhost:8000/api/register",
method: 'post',
data: $('#frmAddTask').serialize(),
success: function(response){
$('#exampleModalCenter').modal('hide')
}});
});
});
</script>
请向我建议我错了,并尝试帮助我解决问题。
提前感谢
您可以在ajax中尝试此代码
url:"{{url('/register')}},