4

I need to make a request through axios, in which I want to pass as an array an array of this type [1,2,3,4]. I need this data to make a selection query from my backend, my question is: should I use a GET or POST request and what would be the correct way to pass this array?

FeRcHo
  • 1,119
  • 5
  • 14
  • 27

1 Answers1

6

You can POST it as json data

let data=[1,2,3,4,5];
let json=JSON.stringify(data);
let post_data={json_data:json}
axios.post('/url',post_data)
  • use JSON.stringify to convert it to json string
  • Use POST method to send data to server
  • Use json_decode to convert json back to array on server side

On laravel side you can do like below

$jsonArray = json_decode($response,true);
sumit
  • 15,003
  • 12
  • 69
  • 110
  • thanks for answering, apparently everything is fine with my javascript code, but I have problems receiving the array in my laravel driver, apparently this did not work $ jsonArray = json_decode ($ response, true). – FeRcHo Apr 05 '18 at 22:43
  • For best practices, the answer would depend on the purpose of your request, and you shouldn't use get/post interchangeably. Get requests should be idempotent, while post requests are not: https://www.restapitutorial.com/lessons/idempotency.html – Kevin Foster Feb 04 '20 at 01:35
  • I agree, using post is not good, I searched else where and found a decent answer using qs. I will link to that here: https://stackoverflow.com/questions/49944387/how-to-correctly-use-axios-params-with-arrays – Muhammad Mubashirullah Durrani Sep 09 '22 at 11:01
  • I however prefer not installing anything new and have moved to fetch: const storeIds = [1,2,3] const response = await fetch(`url/?${new URLSearchParams ({ storeIds }).toString()`) – Muhammad Mubashirullah Durrani Sep 09 '22 at 11:02