【发布时间】:2016-10-18 13:49:17
【问题描述】:
我正在构建一个使用语音识别和文本到语音的 Web 应用程序,它通过 HTML 页面执行操作/显示各种数据(使用 JS(用于 AJAX 的 jQuery)/HTML/CSS 构建。)这个网站应用程序托管在不在我的本地网络上的 HTTPS 服务器上。
我已经设置并配置了一些名为“Philips HUE Lights”的智能灯,它们配备了只能通过本地网络控制的 RESTful API(在本地网络之外不可见)。
我可以通过访问他们产品中包含的 CLIP 调试器/API 工具(本地 ip)“http:////debug/clip.html”向设备发送命令。我能够将 HTTP 命令发送到“Philip HUE Bridge”,这是向灯发出命令的设备。当我使用他们的 API 工具(GET、“PUT、POST、DELETE”)访问上面显示的本地托管 url 时,所有命令都有效。
但是,当我尝试从托管在我的 HTTPS 服务器上的 Web 应用程序中使用 jQuery AJAX 请求“GET”/“PUT”时,该命令会失败。我尝试使用“Access-Control-Allow-Origin: *”设置 AJAX 函数头属性。我还尝试在 AJAX 函数中将“crossDomain”属性设置为 true。我也试过将“dataType”属性设置为“json”和“jsonp”,但还是不行。
我正在通过连接到“HUE Bridge”所连接的本地网络的计算机访问我的 HTTPS Web 应用程序。鉴于我使用的是同一网络上的计算机,我认为这可能会起作用...
我在互联网上阅读了很多其他帖子/信息,但似乎无法找到明确的答案。我想问问你们中的一些经验丰富的人:
考虑到我上面描述的情况,我正在尝试完成的事情是否可能?还是我必须以不同的方式实现这一目标?
非常感谢任何帮助/建议。谢谢。
【问题讨论】:
-
你在哪里设置
Access-Control-Allow-Origin: *标头?将它设置在您的 API 端,它必须工作。第二件事,你不能在本地文件上运行 AJAX 请求,它必须在本地主机(或任何主机)上。 -
remote 服务器必须允许跨域访问。
-
这显然是可能的,因为 Hue 网站和 IFTTT 网络频道都会影响来自公共互联网的 Hue 灯。
-
错误信息是什么?
标签: javascript json ajax cors philips-hue