Axios: Dapatkan array parameter dengan nilai kunci

Dibuat pada 20 Sep 2017  ·  3Komentar  ·  Sumber: axios/axios

Hai,

Saya sudah mencari, tetapi tidak dapat menemukan cara untuk melakukannya. Pada dasarnya saya ingin mengirim permintaan GET dengan parameter array seperti ini

GET /comments?filter[post]=3&filter[author]=12

Saya sudah mencoba ini

params: {
  filter: {post: 3, author: 12}
}

Tapi masih belum beruntung :(

Ada petunjuk?

Terima kasih

Komentar yang paling membantu

Hai @ghprod , pertama-tama saya ingin menjelaskan bahwa saya bukan kontributor perpustakaan ini atau saya menggunakannya, tetapi saya lewat dan saya melihat masalah ini dan memutuskan untuk menyelidiki kodenya sedikit.

Axios tidak mendukung pengkodean semacam itu secara default tetapi memungkinkan Anda untuk menyediakan serializer khusus. Anda dapat melakukannya dengan sangat mudah dengan kode berikut:

// Axios include here...

axios.get('/user', {
    params: {
        filter: {post: 3, author: 12} 
    },
    paramsSerializer: customSerializerFunc
});

Untuk membuatnya lebih sederhana, saya mencari di Google sedikit untuk pustaka querystring serializer dan menemukan qs yang memiliki dukungan untuk browser dan nodejs. Anda dapat menggunakannya sebagai serializer dengan cara ini:

// Include axios and qs here...

axios.get('/user', {
    params: {
        filter: {post: 3, author: 12} 
    },
    paramsSerializer: qs.stringify  // If this doesnt work, append .bind(qs) to the end of this line.
});

Mungkin Anda akan melihat ini: filter%5Bpost%5D=3 bukannya filter[post]=3 , itu karena penyandian URL diaktifkan. Anda dapat menonaktifkannya dengan cara ini:

axios.get('/user', {
    params: {
        filter: {post: 3, author: 12} 
    },
    paramsSerializer: function(params) {
        return qs.stringify(params, { encode: false });
    }
});

Beri tahu saya jika itu berhasil.
Salam.

Semua 3 komentar

Hai @ghprod , pertama-tama saya ingin menjelaskan bahwa saya bukan kontributor perpustakaan ini atau saya menggunakannya, tetapi saya lewat dan saya melihat masalah ini dan memutuskan untuk menyelidiki kodenya sedikit.

Axios tidak mendukung pengkodean semacam itu secara default tetapi memungkinkan Anda untuk menyediakan serializer khusus. Anda dapat melakukannya dengan sangat mudah dengan kode berikut:

// Axios include here...

axios.get('/user', {
    params: {
        filter: {post: 3, author: 12} 
    },
    paramsSerializer: customSerializerFunc
});

Untuk membuatnya lebih sederhana, saya mencari di Google sedikit untuk pustaka querystring serializer dan menemukan qs yang memiliki dukungan untuk browser dan nodejs. Anda dapat menggunakannya sebagai serializer dengan cara ini:

// Include axios and qs here...

axios.get('/user', {
    params: {
        filter: {post: 3, author: 12} 
    },
    paramsSerializer: qs.stringify  // If this doesnt work, append .bind(qs) to the end of this line.
});

Mungkin Anda akan melihat ini: filter%5Bpost%5D=3 bukannya filter[post]=3 , itu karena penyandian URL diaktifkan. Anda dapat menonaktifkannya dengan cara ini:

axios.get('/user', {
    params: {
        filter: {post: 3, author: 12} 
    },
    paramsSerializer: function(params) {
        return qs.stringify(params, { encode: false });
    }
});

Beri tahu saya jika itu berhasil.
Salam.

Berhasil.. :+1:

Terima kasih banyak @ngonzalvez

Semoga hari mu menyenangkan :)

hai, saya butuh bantuan mengenai axios -- bagaimana cara mendapatkan nilai dari input dan meletakkannya sebagai nilai pada parameter untuk axios.get ; katakanlah untuk fungsi pencarian yang saya buat - bagian dari url adalah param kueri.

ini kodenya
aksio
.get('http://localhost:8080/customer/search?hint=da')

di mana petunjuk = "searchText"

tolong bantu.

Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

altruisticsoftware picture altruisticsoftware  ·  3Komentar

Adman picture Adman  ·  3Komentar

varmeh picture varmeh  ·  3Komentar

ghost picture ghost  ·  3Komentar

emaincourt picture emaincourt  ·  3Komentar