如何向Laravel 5.0框架发送Ajax请求?

我整个上午试图解决这个问题,我似乎无法在网上找到任何工作方法。

我正在尝试向我的Laravel控制器执行一个简单的ajax请求并获取它发送的数据。 我把它简化为最大值,我仍然得到数据“未定义”的ERROR 500。

似乎每个上线的例子都是关于Laravel 4.0的,我不确定他们是否改变了某些东西,但似乎没有任何工作。 我也尝试将路由更改为“any”,它可以直接访问,但不能使用ajax请求。

谢谢。

控制器:

<?php namespace App\Http\Controllers; use Session, DB, Request; class AjaxController extends Controller { public function question() { print_r("Made It"); die(); } } 

路线:

 Route::post('/ajax/question', 'AjaxController@question'); 

Javascript:

 $.ajax({ url: "/ajax/question", method: 'POST', data: { 'answered': '1' }, processData: false, contentType: false, cache: false, success: function(data) { console.log(data); console.log("success"); }, error: function(data) { console.log(data); console.log("error"); } }); 

console.log(data)给出以下内容:

 readyState 4 responseText "" status 500 statusText "Internal Server Error" abort function(e) always function() complete function() done function() error function() fail function() getAllResponseHeaders function() getResponseHeader function(e) overrideMimeType function(e) pipe function() progress function() promise function(e) setRequestHeader function(e, t) state function() statusCode function(e) success function() then function() 

编辑:如果我将请求更改为GET它正常工作。 (设置路线到任何)

如果您在响应中查看浏览器控制台,则可能是您正在使用CSRF中间件 。 您需要使用用户的csrf_token()的当前值发布_token

我们在页面布局中包含这个,以便通过标题(Laravel理解)自动将其添加到所有AJAX请求中:

  

有关其工作原理的详细信息,请参阅https://github.com/laravel/framework/blob/8687d42c6674e47efc093b5092ea217b62ba293a/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php#L55 。