我有一個數組,看起來像這樣languages = [1,2,3,4,5]
使用陣列中的GET請求
API調用預期的URL參數爲languages=1&languages=2&...
我怎麼能使用JavaScript實現這一目標?
我試過JSON.stringify(languages);
&只發送languages
變量,但我沒有得到想要的結果。
我還可以循環陣列上,並隨時添加&languages=number
爲一個字符串,但我料想他會是一個更有效的方法?
在此先感謝
我有一個數組,看起來像這樣languages = [1,2,3,4,5]
使用陣列中的GET請求
API調用預期的URL參數爲languages=1&languages=2&...
我怎麼能使用JavaScript實現這一目標?
我試過JSON.stringify(languages);
&只發送languages
變量,但我沒有得到想要的結果。
我還可以循環陣列上,並隨時添加&languages=number
爲一個字符串,但我料想他會是一個更有效的方法?
在此先感謝
另一種選擇使用Array.prototype.join
var languages = [2,4,6,8]
lang_params = 'languages='+languages.join('&languages=')
console.log(lang_params)
(按@Quentin和@Amit評論)如果您使用非整其他PARAMS工作,你可能需要編碼值,因此它們不會與特殊符號干擾(即&
,?
)。在這種情況下,你可以使用encodeURI
lang_params = languages.map((l)=>'languages='+encodeURIComponent(l)).join('&')
的URISearchParams
API將乾淨處理這種情況。
它也將這樣做是爲了使值或鍵URL安全所需要的數據進行轉義處理(在特定的例子,這並不重要,但它是值得關注的爲一般情況下)。
// Create an object to describe the data in the query string
var query = new URLSearchParams();
// Add the languages
var languages = [1,2,3,4,5]
languages.forEach(function (language) {
query.append("language", language);
});
// Explicitly convert to a string
console.log(query.toString());
注有limited browser support at present,所以你可能會希望使用a polyfill。
更有效的方式是通過發送POST數組或認沽認購.. –
@MaanusIndov如果它是對某事物的請求,那麼它應該是一個GET。我們不知道它是什麼,但它看起來確實如此。 – Archer
@Archer好,其真實的,它是很好的使用,如果您要求得到一些數據獲取,但沒有規則,你必須使用它 。的確,我們不知道是做什麼用的請求時,它可以很容易成爲一個更新或保存電話,至於某些項目和它的語言,甚至刪除要刪除哪些語言的呼叫,選項是無限的:) –