我使用的是Laravel 5.1,而且我无法使用其请求注入。
如果我print_r($request->all())
,我会得到一个空数组:
Array
(
[\] =>
)
但是当我检查Request::getContent()
时,它表明我有内容。
{"test": "test"}
这是为什么?我以前从未遇到过这个问题。
public function state(Requests\CheckState $request) {
print_r($request->all());
print_r($request->getContent());
}
class CheckState extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
];
}
}
答案 0 :(得分:1)
将原始JSON数据发送到Laravel时,请务必指定Content-Type: application/json
这是因为Request
类以这种方式检查JSON内容:
/**
* Determine if the request is sending JSON.
*
* @return bool
*/
public function isJson()
{
return Str::contains($this->header('CONTENT_TYPE'), '/json');
}
如果省略标题,则框架假定请求是纯文本。