我是一个Laravel新手,我正在将一个php / jquery应用程序转换为Laravel.原始代码使用带有ajax POST的JSON数组,检索方式如下: $json = file_get_contents('php://input');$data = json_decode($json,true); 我在POST方面
$json = file_get_contents('php://input');
$data = json_decode($json,true);
我在POST方面做了很多相同的事情,但是我在Laravel $请求集合中看不到任何数据.我需要做些什么特别的事情来检索这样结构化的JSON数据:
[
{ "name": "John", "location": "Boston" },
{ "name": "Dave", "location": "Lancaster" }
]
这是我的jQuery ajax POST代码(带有硬编码数据)
$.ajax({
type: "POST",
url: "/people",
data: '[{ "name": "John", "location": "Boston" }, { "name": "Dave", "location": "Lancaster" }]',
dataType: "json",
success:function(data) {
$('#save_message').html(data.message);
}
});
这是我的Controller中接收POST的代码
public function store(Request $request)
{
dd($request->all());
}
但我得到的只是:
[]
关于如何检索我的数据的任何想法?
您需要将Ajax调用更改为$.ajax({
type: "POST",
url: "/people",
data: '[{ "name": "John", "location": "Boston" }, { "name": "Dave", "location": "Lancaster" }]',
contentType: "json",
processData: false,
success:function(data) {
$('#save_message').html(data.message);
}
});
将dataType更改为contentType并添加processData选项.
要从控制器检索JSON有效内容,请使用:
dd(json_decode($request->getContent(), true));
代替
dd($request->all());
