Добавить параметры в строку запроса при использовании метода 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?
Ответы
Ответ 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" });