2017-02-08 16 views
0

Распространено передать параметр с несколькими значениями строки запроса на GET:Передача объекта с помощью параметра с несколькими значениями в качестве строки запроса в GET используя AXIOS

http://server/status?stat=a&stat=b 

Как создать этот тип строки запроса с использованием библиотеки axios в JS? Создание объекта, где имя параметра является ключом и значением является массивом из нескольких значений создает строку запроса:

http://server/status?stat[]=a&stat[]=b 

который неверный формат от того, что ожидает сервер. Это можно сделать в аксиомах?

ответ

1

Оно является общим для передачи параметра с несколькими значениями в виде строки запроса на GET

Это не в коем случае не стандарт. Различные языки, рамки реализуют различные решения. См. Этот вопрос на странице Authoritative position of duplicate HTTP GET query keys.

Можно ли это сделать в аксиомах?

От Axios documentation:

В node.js, вы можете использовать модуль строки запроса следующим образом:

var querystring = require('querystring'); 
axios.post('http://something.com/', querystring.stringify({ foo: 'bar'}); 

Вы также можете использовать QS библиотеку.

qs library имеет поддержку для массивов.

Альтернативой может быть использование Connect.

Update

Библиотека QS поддерживает массивы, но только если параметр с суффиксом []:

var paramsString = "q=URLUtils.searchParams&topic[]=api&topic[]=bar" 

В качестве альтернативы, URLSearchParams API предлагает getAll() метод:

var paramsString = "q=URLUtils.searchParams&topic=api" 
var searchParams = new URLSearchParams(paramsString); 

searchParams.getAll("topic"); // ["api"] 

Это не работает в IE, но имеется полипол url-search-params.

+0

API URLSearchParams также может использоваться в соответствии с документом Axios. thanks @sgtdck – flashmatrix

+0

Я пробовал библиотеку qs, но в настоящее время она не поддерживает 1 для многих пар ключ/значение (key = stat, value = 1,2,3 ...). Интерфейс URLSearchParams остается действительным решением. Этот API не поддерживается в IE, но доступен полифилл [url-search-params] (https://github.com/WebReflection/url-search-params). – flashmatrix

+0

@flashmatrix Я обновил ответ, но перечитав ваш комментарий, я не понял, что вам нужно 1: много пар ключ/значение. Вы имеете в виду '? Key = stat & value = 1,2,3', что приведет к' stat = [1,2,3] '? – sgtdck