HUE API JavaScript HTTP PUT请求返回;net::ERR_EMPTY_REPONSE”;
HUE API JavaScript HTTP PUT Request returning "net::ERR_EMPTY_RESPONSE"
-
GET请求运行良好。
-
来自API调试工具的PUT请求工作正常。
-
PUT和POST,无论使用的是数据还是API url,都会返回以下错误:
示例:
选项http://xxx.xxx.x.x/api/AuthorizedUsername/APIRequest/lights/light/1/statenet::ERR_EMPTY_REPONSE
它返回一个null响应。
我的相关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 -
通过JavaScript:从我的http请求
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 -
感谢您的帮助。
这对我有效:-
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("PUT", 'http://<local address>/api/<username>/groups/1/action');
xmlhttp.send('{"on":true, "hue": 16000, "bri": 254'}');
您的JavaScript输出将Method显示为OPTIONS。如果这是帖子顶部列出的选项,那么这看起来是错误的,因为上面写着。。。API请求/lights/light/1/状态,但可能应该是。。。API请求/灯/1/状态
相关文章:
- 如何更改bigquery API中的计费层选项
- Amazon S3 REST API大小不正确
- 客户端服务器REST API captcha实现
- 使用Facebook live API创建实时视频对象时的隐私设置
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- API密钥使用和检查示例
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 谷歌地图JS API+JSON-多个标记没有显示
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何在 API 调用后和 if 语句中启用提交按钮
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 搜索api在mac上显示对话框
- Backbone.js restful json API design
- 标记的实时更新,无需加载页面谷歌地图API V3
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 对API数据使用声明性绑定
- Nodejs API控制器,用于在API之间切换