此路由不支持POST方法。支持的方法:laravel 5.8中的GET,HEAD

问题描述 投票:0回答:1

我正在使用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>

请向我建议我错了,并尝试帮助我解决问题。

提前感谢

php ajax laravel
1个回答
0
投票

您可以在ajax中尝试此代码

url:"{{url('/register')}},
© www.soinside.com 2019 - 2024. All rights reserved.