有一个json数据,前台通过ajax提交给controller,小白不知道怎么在controller的方法中获取到json数据
查询系统
请选择 啊啊啊 呵呵哒
问怎么在控制器中获取到ajax中data的option的值,求指导
<script>$(document).ready(function(){$("#singerarea").change(function(){$.ajax({type:'POST',url:'/ajax',/*这个地方有问题下面这一行*///data:'{_token:<?phpechocsrf_token()?>,option:$("#singerarea").val()}',//下面这样才是正确的data:{'_token':'<?phpechocsrf_token()?>','option':$("#singerarea").val()},dataType:'json',success:function(data){alert(data.msg);},error:function(){alert("error")}});});})</script>
你写的data里面我Post到后台:
data:'{_token:<?phpechocsrf_token()?>,option:$("#singerarea").val()}',
把_token:<?phpechocsrf_token()?>,option:$("#singerarea").val()当做整个键...然后值为空..
你可以自己试试用$request->all();方法试试看是不是这么回事...
Ajax和表单POST有什么区别??
只是装X的无刷新提交而已...
在后台接收层面上没区别~
手册:
这和form不是一样吗?
一样的啊,不过提交的时候要加一个_token,在控制器中接收数据时,直接用'$request->key'就行了,你可以先用'dd'打印所有的参数'$request->all'看看
这得先学学http和javascript基础
额,csrf_token不需要那样写的,如下、
$.ajaxSetup({
headers:{'X-CSRF-TOKEN':'{{csrf_token()}}'}
});会在每次提交表单的时候,自动帮你补上。
还有在controller,若要获取前端传过来的json数据{"sex":"male"}、那么可以用$request->input("sex")即可,$request用方法注入即可获得。