HUE API JavaScript HTTP PUT Request возвращает net::ERR_EMPTY_RESPONSE

  1. GET-запросы работают нормально.

  2. Запросы PUT от инструмента отладки API работают нормально.

  3. PUT и POST, независимо от используемых данных или URL-адреса API, возвращают следующую ошибку:

    пример:

    ОПЦИИ http://xxx.xxx.x.x/api/AuthorizedUsername/APIRequest/lights/light/1/state net::ERR_EMPTY_RESPONSE

Он возвращает нулевой ответ.

Мой соответствующий код Angular JS:

var bridgeIp = "http://xxx.xxx.x.x";
var username = "authenticatedUsername";
var lightData = {"on": true};

$http.put(bridgeIp+"/api/"+username+"/lights/5/state", lightData)
.then(function success(response) {
          console.log(response.data);
     }, function error(e){
          console.log(e);
     });

Я также пытался использовать функцию JQuery Ajax и получил ту же проблему.

Я сравнил запросы с помощью fiddler, но это вызвало ошибку CORS. Тогда я сравнил запросы с Чарльзом. Вот эти результаты:

Из инструмента отладки API:

URL http://xxx.xxx.x.x/api/AuthorizedUser/lights/5/state
Status  Complete
Response Code   200 OK
Protocol    HTTP/1.1
SSL -
Method  PUT
Kept Alive  No
Content-Type    application/json
Client Address  /127.0.0.1
Remote Address  xxx.xxx.x.x/xxx.xxx.x.x
Timing  
Request Start Time  3/23/16 18:24:17
Request End Time    3/23/16 18:24:17
Response Start Time 3/23/16 18:24:17
Response End Time   3/23/16 18:24:17
Duration    43 ms
DNS 0 ms
Connect 2 ms
SSL Handshake   -
Request 2 ms
Response    1 ms
Latency 37 ms
Speed   20.46 KB/s
Response Speed  879.88 KB/s
Size    
Request Header  427 bytes
Response Header 421 bytes
Request 12 bytes
Response    41 bytes
Total   901 bytes
Request Compression -
Response Compression    -

Из моего http-запроса через JavaScript:

URL http://xxx.xxx.x.x/api/AuthorizedUser/lights/5/state
Status  Failed
Failure Remote server closed the connection before sending response header
Response Code   -
Protocol    HTTP/1.1
SSL -
Method  OPTIONS
Kept Alive  No
Content-Type    -
Client Address  /127.0.0.1
Remote Address  xxx.xxx.x.x/xxx.xxx.x.x
Timing  
Request Start Time  3/23/16 18:24:55
Request End Time    3/23/16 18:24:55
Response Start Time -
Response End Time   3/23/16 18:24:55
Duration    14 ms
DNS 0 ms
Connect 2 ms
SSL Handshake   -
Request 2 ms
Response    -
Latency -
Speed   31.74 KB/s
Response Speed  -
Size    
Request Header  455 bytes
Response Header -
Request -
Response    -
Total   455 bytes
Request Compression -
Response Compression    -

Любая помощь приветствуется.


person Robert Neumann    schedule 23.03.2016    source источник


Ответы (2)


Это работает для меня: -

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("PUT", 'http://<local address>/api/<username>/groups/1/action');
xmlhttp.send('{"on":true, "hue": 16000, "bri": 254'}');

person Angela Slaney    schedule 11.04.2016
comment
Спасибо за ответ Анжела! К сожалению, я все еще получаю ту же ошибку. Я предполагаю, что у меня что-то неправильно настроено. Есть ли что-то особенное, что вы установили? Я пытался запустить его из каталога wamp и обычного каталога. - person Robert Neumann; 13.04.2016

Ваш вывод JavaScript показывает метод как ВАРИАНТЫ. Если это ОПЦИИ, перечисленные в верхней части сообщения, то это выглядит неправильно, поскольку там написано ...APIRequest/lights/light/1/state, но, вероятно, должно быть ...APIRequest/ света/1/состояние

person Ron Reuter    schedule 26.04.2016