2016-11-22 177 views
1

我的代碼如下,當我使用get route.I只是想用ajax發送數據,然後恢復它。Laravel Ajax響應post方法

$('.link').click(function(){ 
     var c = $(this).text(); 
     var url = '{{route('home')}}'; 


     $.ajax({ 

      url:url, 
      data:{'mydata' : c } 

     }) 
     .done(function(msg){ 
      console.log(msg['response']); 
     }); 

    }); 

,並在我的路線文件:

Route::get('/home', function(Request $request){ 
return response()->json(['response' => $request['mydata']]);})->name('home'); 

,當我正在使用Route.When get方法我使用後工作正常,我得到一個錯誤:405(不允許的方法)。 我使用的方法:在AJAX'後',我得到一個錯誤:500(內部服務器錯誤)

任何人都可以幫忙嗎?謝謝。

+0

你能證明你的職位職能? – farhadamjady

+0

您無法發佈到GET路線。定義另一個路由,例如:Route :: post('/ home',function(Request $ request){//在此做某事}); 然後,您可以在AJAX請求中使用type:'POST'來發出POST請求。 – Vivek

+0

如果你定義了路由,它只允許get方法。同樣在郵政。如果你想確保這兩個方法的工作,使用**路線::任何()** –

回答

0

這將工作:

$('.link').click(function(){ 
    var c = $(this).text(); 
    var url = '{{route('home')}}'; 


    $.ajax({ 
     type: "POST", 
     url:url, 
     headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' }, 
     data:{'mydata' : c } 

    }) 
    .done(function(msg){ 
     console.log(msg['response']); 
    }); 

}); 

而且在路線

Route::post(... 
+0

正如我所說當我使用後我得到一個錯誤405(方法不允許)。我用get寫的代碼,因爲這是它的工作的唯一途徑。 – george

+0

好吧,我看到了...我現在會更新我的答案...您必須在ajax中指定它是帖子類型,因爲默認情況下它是一個get! – lewis4u

+0

它的作品!謝謝 !! – george

0

當您使用後,更改路線。

Route::post('/home',