Sal*_*man 4 php post laravel laravel-5
当我使用邮递员或我的应用程序发布到我的 API 端点时,request参数是一个空数组。
使用其他控制器发布请求工作正常并且request参数得到很好的处理。只有使用我的订单控制器才不会处理我的帖子正文。
我没有进行任何更改,恢复到较旧的提交也无济于事。
我现在不知道为什么它不接受 JSON 正文。
控制器
public function createOrder(Request $request)
{
return $request->product_id;
}
Run Code Online (Sandbox Code Playgroud)
POST 正文| 原始 JSON
{
"product_id": 4
}
Run Code Online (Sandbox Code Playgroud)
响应 响应是一个空数组 []"
我试图打印$request,我得到了这个作为回应
POST /api/order/post HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate, br
Authorization: Bearer.{token}
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 20
Content-Type:
Cookie: XSRF-TOKEN={Token}%3D%3D; laravel_session=%3D%3D
Host: backend.host
User-Agent: PostmanRuntime/7.22.0
Cookie: XSRF-TOKEN==={token}; laravel_session={Token}
{
"product_id": 4
}
Run Code Online (Sandbox Code Playgroud)
我的帖子正文是可见的,所以我很困惑为什么它没有显示
我的期望和我得到的
我希望请求返回我的 JSON 正文的值
发生了什么 没有返回
注意:我最近添加了通行证,但上次添加后使用此端点时效果很好laravel
工作控制器
public function store(Request $request)
{
return $request;
}
Run Code Online (Sandbox Code Playgroud)
Api 路由
Route::post('order/create', 'OrderController@createOrder');
Route::post('product/create', 'ProductController@store');
Run Code Online (Sandbox Code Playgroud)
如果我echo $request在控制器中执行,我会看到请求中有数据,但我认为该格式不好:
POST /api/messages HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, br
Authorization: Bearer 5|ibun75O2SNnZoT2W5Rk0KQox70wBxKN4xIIrq0sQ
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 522
Content-Type: application/json
Host: localhost:8000
User-Agent: PostmanRuntime/7.26.10
{
"text" : "Molestiae dolor non eaque aut sapiente maiores. Aut voluptates nesciunt. Cum distinctio quisquam qui vitae eos
asperiores.
Nihil iste quia. Voluptate deleniti ipsam voluptas alias similique doloremque. Ratione alias iste voluptatem quis. Quis
quia quo sequi minus quod voluptate cum similique dolor.
Maxime enim aut. Eius ea doloribus. Quaerat dolor libero ipsum. Delectus atque esse ipsam est.",
"imageLink" : "http://placeimg.com/640/480/abstract",
"typeID" : "232",
"answerTypeID" : "919"
}
Run Code Online (Sandbox Code Playgroud)
添加Content-Type:application/json以使 PHP 了解它正在接收 JSON。目前,你Content-type看起来很空。还要确保您传递的 CSRF 令牌是正确的。