问题:
我试图从文本/普通POST请求中获取Laravel 8中的Controller中的content/body。
无论是在文档中,还是在谷歌搜索中,都没有效果。
我试过:
$request->input();
$request->all();
$request->json();
json_encode($request);所有这些似乎都表明请求完全是空的。
上下文
这可能与解决方案无关,但可能会帮助试图搜索此问题的其他人:我试图处理的控制器请求是由navigator.sendBeacon在客户端发送的。请求主体实际上是字符串化的JSON,但是sendBeacon不允许您发送内容类型JSON的请求。Devtools将此请求的内容类型标头显示为“text/平原”。
发布于 2021-02-14 19:24:53
我的答案是:
使用获取文本/普通HTTP请求的内容.
然后,如果您处于类似于我的情况,文本实际上是JSON,那么使用json_decode($request->getContent(),true)从您可以在Controller中使用的内容中获得一个标准的PHP数组。
事实证明,这是相当简单的,但信息没有在文档,或任何在线搜索,所以我认为这将是值得张贴到如此如此.
发布于 2022-05-26 18:58:07
您可以像下面这样以JSON的形式发送数据
data = new Blob([JSON.stringify(data)], {type : 'application/json'})
navigator.sendBeacon('/your/route/here', data)https://stackoverflow.com/questions/66199232
复制相似问题