это мой второй пост, надеюсь, мне повезет больше, чем в прошлый раз, и я получу ответ. 100
Я пытаюсь заставить API-запрос Rapidapi работать с javascript «XMLHttpRequest». Должен сказать, что API прекрасно работает с ios ярлыком siri.
это код предоставлено с сайта apirapit в разделе «XMLHttpRequest»:
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://download-video-youtube1.p.rapidapi.com/mp3/medPORJ8KO0");
xhr.setRequestHeader("x-rapidapi-host", "download-video-youtube1.p.rapidapi.com");
xhr.setRequestHeader("x-rapidapi-key", "[my key here]");
xhr.send(data);
И это мой код:
<!DOCTYPE html>
<html>
<body>
<h2>The XMLHttpRequest Object</h2>
<button type="button" onclick="loadDoc()">Request data</button>
<p id="demo"></p>
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.withCredentials = true;
url='https://download-video-youtube1.p.rapidapi.com/mp3/xF5t2jOsCt8';
xhttp.onreadystatechange = function() {
if ((this.readyState == 4 && this.status == 200 )||(this.readyState === this.DONE)) {
document.getElementById("demo").innerHTML = "ciao" + this.responseText;
}
};
xhttp.open("GET", url);
xhttp.setRequestHeader("x-rapidapi-host", "download-video-youtube1.p.rapidapi.com");
xhttp.setRequestHeader("x-rapidapi-key", "[my key here]");
xhttp.send();
}
</script>
</body>
</html>
Просто для тестирования я создал страницу просто банка html, чтобы иметь JSON ответ под кнопкой сразу после ее нажатия. Результатом является просто строка «ciao», которую я установил перед this.responseText. Если я удаляю apikey или изменяю его с неправильным значением, появляется сообщение об ошибке JSON (так же, как и в случае, опубликованном, поскольку я намеренно удалил его). В противном случае, как было сказано, кроме строки «ciao»
Есть ли синтаксическая ошибка? Есть ли логическая причина, по которой он так себя ведет?
Спасибо, Франко