如何绕过飞利浦Hue Hub的CORS

时间:2015-10-15 08:33:20

标签: cors philips-hue

我有新发布的Philips Hue网桥,我正试图通过向我的浏览器发送JSON请求来控制它。我正在使用第三方'帮助'api只是为了让事情变得更容易一些 - 但这与哪一个无关,因为它下面只是发送一个普通的PUT请求。我只是使用Chrome在本地运行JS(在本地网络服务器上)。

PUT http://192.168.1.86/api/2e51aa2362f1a416d8eab4816b669eb/lights/16/state

{ on: true }

问题是我收到了以下CORS错误:

  

XMLHttpRequest无法加载http://192.168.1.86/api。没有   请求中存在“Access-Control-Allow-Origin”标头   资源。原因'http://example.com'因此不是   允许访问。

这非常有意义 - 而且我完全理解正在做什么 - 毕竟我正在尝试向远程服务器发出PUT请求,因此我的浏览器禁止我。但是我显然无法更改集线器上的代码。

这有什么解决方案吗?我刚才看到飞利浦需要在自己的网站上something similar进行跨域访问。

我可以找到关于此的很少信息 - 我不确定飞利浦最近是否改变了一些东西。事实上,第三方JS APIS甚至没有提到这一点,这让我相信飞利浦可能已经改变了一些东西(我发现third party webapp有同样的问题)。

编辑:

这些是回头的标题:

HTTP/1.1 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Expires: Mon, 1 Aug 2011 09:00:00 GMT
Connection: close
Access-Control-Max-Age: 3600
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE, HEAD
Access-Control-Allow-Headers: Content-Type
Content-type: text/html
Content-Length: 0

2 个答案:

答案 0 :(得分:4)

事实证明Fiddler(Windows HTTP调试代理)与我的CORS请求有某种冲突 - 这没有任何意义但是现在我关闭了Fiddler并且它工作正常且能够给PUT请求。

我启用了“流”,但这并没有什么区别。

答案 1 :(得分:1)

飞利浦色调桥发送"访问控制允许原点:*"标题所以它应该工作。据我所知,它总是这样做。

我刚刚查看了" clip.html"的副本。我放在不同的网络服务器上的文件(在桥上找到),它工作正常。

您确定使用的是正确的IP地址(例如,对桥接器进行GET操作吗?)