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。
我正在尝试从 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。