Подтвердить что ты не робот

Добавить параметры в строку запроса при использовании метода PUT с помощью Angular $http

Я использую услугу Angular $http для создания запросов веб-ави. Когда я использую метод GET, в строку запроса добавляются два значения параметра:

// http://foo.com/api/test?heroId=123&power=Death+ray
$http.get("/api/test", {
   params: { heroId: 123, power : "Death ray" }
})

Однако, когда я использую метод PUT, параметры кодируются JSON и отправляются в качестве полезной нагрузки запроса:

// {"params":{"heroId":123,"power":"Death ray"}}
$http.put("/api/test", {
   params: { heroId: 123, power : "Death ray" }
})

Как я могу заставить params добавляться в строку запроса при использовании PUT?

4b9b3361

Ответ 1

С $http.put, $http.post или $http.patch объект конфигурации, содержащий ваши параметры url, идет как третий аргумент, второй аргумент которого является телом запроса:

$http.put("/api/test",                                       // 1. url
          {},                                                // 2. request body
          { params: { heroId: 123, power : "Death ray" } }   // 3. config object
);

$http.put документация для справки

Ответ 2

AngularJS отправляет данные json, а не данные формата x-www-form-urlencoded. Хотя вы можете попробовать следующее:

$http.put("/api/test", { heroId: 123, power : "Death ray" });