Междоменный запрос в Xhtml
Я пытаюсь отправить запрос https из приложения HbbTV (xhtml), чтобы получить информацию по https://www.meethue.com/api/nupnp.
XMLHttpRequest был моим первым вариантом, но из-за той же политики происхождения он, очевидно, не будет работать. В качестве альтернативы я нашел CORS, но, насколько я понимаю, ему нужен XMLHttpRequest2, который является частью HTML5, я прав?
Есть ли какая-либо функция, метод или обходной путь, который я мог бы использовать для достижения своей цели?
С наилучшими пожеланиями Адриан
1 ответ
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)
Кроме того, если ваша платформа поддерживает это или вы можете заполнить его, я рекомендую использовать Fetch вместо XHR.