Php Laravel AJAX POST请求为空

Php Laravel AJAX POST请求为空,php,ajax,post,laravel,Php,Ajax,Post,Laravel,当我通过AJAX将POST数据传递给我的控制器时,它是空的。 在AJAX中,数据仍然存在,但在我将其发送给控制器后,它会说它是空的 阿贾克斯: Routes.php: Route::post('usernamevalidation', 'UserController@validateUsername'); UserController.php: class UserController extends BaseController { public function validate

当我通过AJAX将POST数据传递给我的控制器时,它是空的。 在AJAX中,数据仍然存在,但在我将其发送给控制器后,它会说它是空的

阿贾克斯:

Routes.php:

Route::post('usernamevalidation', 'UserController@validateUsername');
UserController.php:

class UserController extends BaseController {

    public function validateUsername() {

       // FOR DEBUGGING
       dd(Input::all());

    }
}
I console.logged的代码(为空,应包含用户名):


数组(大小=0)
空的

自从上次发表评论一年后,我意识到我在这里给出了我的答案,我在使用Laravel 5.2和使用
XMLHttpRequest
对象时偶然发现了一些错误:最后,我结束了对post请求头的分析和比较,这让我简单地设置了两个:

xmlhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
这解决了我的空
响应文本

希望这可以帮助其他人或用于将来的参考。

尝试
dd(\Request::getContent))
并查看这会给您带来什么。首先调试ajax请求。打开浏览器控制台,检查标题中的ajax请求表单数据。它给我一个500内部服务器错误,我用普通php$\u请求尝试了它,它也是空的。我已经用ajax做了,它在那里工作,在POST数据中显示username=(无论我输入了什么)。问题是,当它进入控制器时,它是空的*它确实与Request::getContent()@Pila一起工作,观察OP的代码列表,您应该在调用
XMLHttpRequest
对象的
open
方法后调用
setRequestHeader
<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b> <i>(size=0)</i>
  <i><font color='#888a85'>empty</font></i>
</pre>
xmlhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');