我试图从HbbTV应用程序(xhtml)发送https请求以从https://www.meethue.com/api/nupnp获取信息。Xhtml中的跨域请求
XMLHttpRequest是我的第一选择,但由于相同的原产地政策,它显然不会工作。作为替代方案,我发现了CORS,但据我了解,它需要XMLHttpRequest2,它是HTML5的一部分,我正确吗?
是否有任何函数,方法或解决方法可以用来实现我的目标?
问候 阿德里安
我试图从HbbTV应用程序(xhtml)发送https请求以从https://www.meethue.com/api/nupnp获取信息。Xhtml中的跨域请求
XMLHttpRequest是我的第一选择,但由于相同的原产地政策,它显然不会工作。作为替代方案,我发现了CORS,但据我了解,它需要XMLHttpRequest2,它是HTML5的一部分,我正确吗?
是否有任何函数,方法或解决方法可以用来实现我的目标?
问候 阿德里安
XMLHttpRequest的是我的第一选择,但由于同源策略,这显然是行不通的。
我不明白。
从这里StackOverflow上我没有问题上运行你所提供的端点的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)
另外,如果你的平台支持它,或者你可以填充工具的话,我建议你使用取代替XHR。
哦,男人,非常感谢你。我非常专注于文档和不同的解决方案,我在某种程度上将GET变成了POST,浪费了很多时间。感谢您所有的帮助。 – DaPole
[XMLHttpRequest可能重复无法加载https:// www。\ [website \] .com /](https://stackoverflow.com/questions/35553500/xmlhttprequest-cannot-load-https-www-website- com) – Quentin
请注意,重复问题的接受答案中标题为“CORS的替代方案”部分。 – Quentin
“它需要XMLHttpRequest2,它是HTML5的一部分” - XMLHttpRequest和HTML是独立的规范,它们之间没有依赖关系。 – Quentin