Мне нужно отправить запрос PUT с полезной нагрузкой в API (Philips Hue Bridge), но у меня есть некоторые ограничения в javascript. Я могу только использовать:
Методы XMLHttpRequest:
open(method, url [, async = true [, username = null [, password = null]]])
Устанавливает метод запроса, URL запроса и синхронный флаг. Поддерживаемый метод запроса: GET, POST
send(data = null)
Инициирует запрос. Необязательный аргумент data допускает только строковый тип в кодировке UTF-8. Аргумент игнорируется, если метод запроса GET.
abort()
Отменяет любую сетевую активность. Это ограничение исходит из спецификации носимых веб-виджетов Tizen
API Philips Hue Bridge ожидает:
URL: http://hostname/api/username/lights/lightKey/state
Метод: PUT
Пример полезной нагрузки: {"on": true}
Что я пробовал:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://hostname/api/username/lights/lightLey/state?on=true');
xhr.send();
Ответ: 400 (Bad request)
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://hostname/api/username/lights/lightLey/state?on=true');
xhr.send();
Ответ: 400 (Bad request)
Также пробовал GET
и POST
со следующими окончаниями URL: ../state?{on=true}
../state?{on:true}
../state?{"on"=true}
../state?{"on":true}
Ответ: 400 (Bad request)
Опять же, я не могу использовать какие-либо дополнительные библиотеки или команды, кроме методов XMLHttpRequest, упомянутых выше.
Как мне решить эту проблему?