簡體   English   中英

Axios 在 post 請求中發送數組而不是 json object

[英]Axios is sending array instead of json object in post request

我正在嘗試使用 axios 從 Vuejs 前端向后端的 Laravel 發送發布請求。

const data = {
            file: {id}
        }

        axios.post('api/documents/remove', data).then((response) => {
                console.log(response.data);
            }
        }).catch(err => { console.log(err.response.data); })

在 laravel 中,我正在打印這樣的請求,

 public function removeFile(Request $request)
 { 
    dd($request);
 }

這是我的 output。

Illuminate\Http\Request {#51
  #json: Symfony\Component\HttpFoundation\ParameterBag {#43
  #parameters: array:8 [
  "file" => array:1 [
    "id" => 61
  ]
}

PHP 的“ arrays ”並不是真正的 arrays,它們是有序的 maps 這就是您的 output 顯示的內容,請求包含參數,這是一個有序的 map, file參數是一個有序的 map,其中id => 61 6。 在 JavaScript 中,這將是 object (或Map ,有時); 在許多其他語言中,它將是某種 map 或字典。 PHP 稱它們為 arrays。

無論哪種方式,如果您訪問file參數(我不“做”Laravel,所以我不知道您是如何做到的),您可以像這樣從中獲取id$file[ id ] 查看Laravel 文檔,看起來會是:

$file = $request->input('file');
$id = $file['id'];

您可以將 $request 的數據作為

$file = $request->input('file');
$file['id'];

//Or

$fileId = $request->input('file.id');

請求$request正在交付數組而不是 object 實例,因此,您只能像下面這樣訪問:

$request->input('file')['id']

或者

$request->file['id']

或者

$request->input('file.id')

或者,只有文件字段

$request-all()[0]['file']['id']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM