【问题标题】:How to get around CORS with Philips Hue Hub如何使用飞利浦 Hue Hub 绕过 CORS
【发布时间】:2023-04-10 00:20:02
【问题描述】:

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

输入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

【问题讨论】:

    标签: cors philips-hue


    【解决方案1】:

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

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

    【讨论】:

    • 这个话题已经有一段时间了,但我也有类似的问题。我正在尝试从我电脑上的网络服务器向网桥发出 PUT 请求。 GET 和 POST 工作,但是当它应该发送一个 PUT 时它给了我一个错误,因为在 Access-Control-Allow-Methods 中找不到方法。 Hue 也允许 PUT 仍然是实际的吗?你是怎么知道你的 Fiddler 是原因的?
    • 好问题。我想也许我发现它是一个巧合。不确定我是否在请求日志中看到了特定内容。
    • 嗯,好的。那么我将不得不搜索......我只是希望它仍然有效,我不知道他们为什么要阻止 PUT。
    • 我认为它与 CORS 相关,因此这可能是研究的起点。真的是两年前吗!
    • 您是如何获得标头信息的?那将是第一件事,看看桥是否真的仍然支持PUT方法
    【解决方案2】:

    飞利浦 hue 网桥发送“Access-Control-Allow-Origin:*”标头,因此它应该可以正常工作。据我所知,它总是这样做。

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

    您确定您使用的是正确的 IP 地址(例如,对网桥的 GET 是否有效?)

    【讨论】:

    • GET 工作正常。我可以得到灯光和场景的列表,但不能做 PUT。你还有“旧”桥吗?我从其他人编写的两个网络应用程序中得到的错误,所以我相信一定有什么改变。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多