我試圖從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