也许这是一个非常常见的话题,但是我可以开发Laravel 5.0,我需要将一些数据从jquery ajax 发送到laravel controller ,我已经按照this教程使用ajax发布数据,我已经按照了步骤并进行全局配置,以便我有一个带有 csrf 标记的元数据,当我使用ajax将发送请求发送到网址时,它只是发送令牌!但我发送的数据没什么!
这是我的ajax函数(我使用虚拟数据来测试它):
$.ajax( {
url : '/reservacion/paso-uno/enviar',
method : 'post',
data : { name: "John", location: "Boston" }
} );
但是当我在post func中我只获得令牌时,如果我检查表头数据,我只得到这个:
这是 Headers 的完整图像:
这是带有csrf的元标记:
<meta name="_token" content="{{{ csrf_token() }}}"/>
这是全局ajax设置:
$.ajaxSetup({
headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
});
BIG UPDATE
不知道为什么,也不知道如何,我想这只是一个缓存问题,但是上面的配置它会发送数据,但只有当我有 <input type='submit' >
并在jquery中设置click事件时才会发生这种情况,因为如果我为它设置了提交事件,它在浏览器路径中使用查询字符串重新加载页面 .
现在的问题是没有达到控制器的功能......当我点击按钮没有任何反应时,数据被发送但它没有到达laravel控制器 .
5 回答
请尝试在路线中将您的方法更改为GET . 然后使用Input :: all()获取内容;
我希望这能帮到您 .
设置元标记如下
设定路线
设置控制器功能
在顶部
use Input;
请求如下
HTML表单
在表单的某处添加 CSRF Token 就像这样
路线
添加帖子路线
表单处理方法
jQuery Ajax
在您的JS / jQuery脚本中添加以下内容
你可以将
_token
作为数据集的一部分传递吗?