[英]Laravel Post Request empty Request parameters
當我使用郵遞員或我的應用程序發布到我的 API 端點時, request
參數是一個空數組。
使用其他控制器發布請求工作正常並且request
參數得到很好的處理。 只有使用我的訂單控制器,我的帖子正文才不會得到處理。
我沒有進行任何更改,恢復到較舊的提交也無濟於事。
我現在不知道為什么它不接受 JSON 正文。
控制器
public function createOrder(Request $request)
{
return $request->product_id;
}
POST 正文| 原始 JSON
{
"product_id": 4
}
響應響應是一個空數組 []"
我試圖打印$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
}
我的帖子正文是可見的,所以我很困惑為什么它沒有顯示
我的期望和我得到的
我希望請求返回我的 JSON 正文的值
發生了什么 沒有返回
注意:我最近添加了通行證,但上次在添加laravel
后使用此端點時效果laravel
工作控制器
public function store(Request $request)
{
return $request;
}
Api 路由
Route::post('order/create', 'OrderController@createOrder');
Route::post('product/create', 'ProductController@store');
如果我在控制器中echo $request
我看到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"
}
添加Content-Type:application/json
使 PHP 知道它正在接收 JSON。 目前,您的Content-type
看起來是空的。 還要確保您傳遞的 CSRF 令牌是正確的。
檢查您的請求是否具有:
application/json
的標題Accept
。例如:
這有效: JSON 類型的原始主體:
{
"email": "{{email}}",
"password": "{{password}}"
}
這不起作用:即使是 JSON 類型的原始正文:
{
"email": "{{email}}", // Eg. superadmin@example.com <-- This invalidates the JSON
"password": "{{password}}" // Eg. password <-- This invalidates the JSON
}
請注意,在 Postman 中,JSON 注釋在視覺/語法上呈現為 JSON 的有效部分,但實際上是無效的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.