簡體   English   中英

方法不允許錯誤 405 發布 ajax 請求以發布路由

[英]Method not allowed error 405 post ajax request to post route

當我嘗試通過 ajax post 請求發布到數據庫以發布路由時,我收到了一個方法不允許 405 錯誤。 請幫忙

$.ajaxSetup({
    headers: { 'X-CSRF-Token' : $('meta[name="csrf-token"]').attr('content') } 
});

$.ajax({
    url: '{{url("HeatMapCoordinates")}}',
    data:{
        "finalPointArray" : finalPointsMap,
        "tourId":tourId,
        "picWidth":picWidth,
        "picName":picName
    },
    async:true,
    type:'post',
    success:function(response){
        console.log("coordinates sent");
        finalPointsMap=[];
        pointsMap=[];
        pointsMap.push(initialPoint);
    },
    error:function(e){
        console.log("error");
        console.log(e);
    }
});

我也試過

url: '{{route("HeatMapCoordinates.store")}}',

但它也不起作用我的路線是:

Route::resource('/HeatMapCoordinates','HeatMapCoordinatesController');

我的控制器功能:

 public function store(Request $request)
{   
    $this->validate($request, array(
        'tourId'     => 'required',
        'picWidth' => 'required',
        'picName'  => 'required',
        'finalPointArray'  => 'required',

    ));
...
return 'stored';
}

試試這個:

$(document).ready(function(){

 $('#your_form').on('submit', function(event){
  event.preventDefault();
  $.ajax({
   url:"{{ route('HeatMapCoordinates_store') }}",
   method:"POST",
   data: new FormData(this),
   dataType:'JSON',
   contentType: false,
   cache: false,
   processData: false,
   success:function(data)
   {
    console.log(data);
    // ANY CODE HERE
    $('#result').html(data.result);
   },
   error:function(data){
    console.log(data);
    $('#result').html('No result. We have an ERROR ...');
    }
  })
 });

});

並使用這樣的表格:

<form method="POST" id="your_form">
    <input type="text" name="finalPointsMap">
    <input type="text" name="tourId">
    <input type="text" name="picWidth">
    <input type="text" name="picName">

    <input type="submit" name="go" value="Submit">
</form>

使用這個<div>來顯示結果:

<div id="result"></div>

你的<head>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>

使用這條路線

Route::post('/HeatMapCoordinates/store','HeatMapCoordinatesController@store')->name('HeatMapCoordinates_store');

並在您的控制器中使用此功能:

public function store(Request $request)
{   
    $validator = $this->validate($request, [
        'tourId'     => 'required',
        'picWidth' => 'required',
        'picName'  => 'required',
        'finalPointArray'  => 'required'
    ]);

    # RETURN ERRORS AS JSON
    if ($validator->fails()) {
       return response()->json([
            'result' => 'ERROR: ' // USE $validator->errors() for example ... 
        ]);
    }

    # USE YOUR INPUTS HERE, LIKE THIS 
    $id = $request->tourId;

    return response()->json([
        'result' => 'Good, ID is : '.$id
    ]);
}

請告訴我它是否有效:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM