2016-11-22 175 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',