Xhtml中的跨域请求

cross domain request in Xhtml

我正在尝试从 HbbTV 应用程序 (xhtml) 发送 https 请求以从 https://www.meethue.com/api/nupnp 获取信息。

XMLHttpRequest 是我的第一个选择,但由于同源政策,它显然行不通。作为替代方案,我找到了 CORS,但据我了解,它需要 XMLHttpRequest2,它是 HTML5 的一部分,我说得对吗?

有什么功能、方法或解决方法可以用来实现我的目标吗?

此致 阿德里安

XMLHttpRequest was my first option, but due to same origin policy it obviously won't work.

我不明白。

在 Whosebug 上,我没有遇到任何问题 运行 使用以下代码段在您提供的端点上的 XHR :

function fetchData() {
  var URL = 'https://www.meethue.com/api/nupnp';
  var xhr = new XMLHttpRequest();

  xhr.onreadystatechange = function() {
      if (xhr.readyState == XMLHttpRequest.DONE) {
        document.getElementById('response')
          .innerHTML = "Response: " + xhr.responseText
      }
  }
  xhr.open('GET', URL)
  xhr.send()
}
<div id='response' onclick='fetchData()'>Click to fetch</div>

CORS(跨源资源共享)本身与其说是一种技术,不如说是一种规范。

它定义了只有当目标端点指定允许源在那里获取时才允许跨源请求。 如果你想了解更多,我推荐这篇关于 MDN 的优秀文章:HTTP Access Control (CORS)

此外,如果您的平台支持它或者您可以对其进行 polyfill,我建议您使用 Fetch 而不是 XHR。