首页 > 解决方案 > QML Blackberry 10 中的 XMLHttpRequest 错误

问题描述

我正在尝试获取 BlackBerry 10 应用程序的电影数据。我不知道我在哪里犯了错误。拜托,你能帮帮我吗?谢谢你们。

import bb.cascades 1.4

Page {

    onCreationCompleted: {
        sendRequest();
    }

    function sendRequest() {
        var data = "{}";

        var xhr = new XMLHttpRequest();
        xhr.withCredentials = true;

        xhr.addEventListener("readystatechange", function () {
                if (this.readyState === this.DONE) {
                    console.log(this.responseText);
                }
        });

        xhr.open("GET", "https://api.themoviedb.org/3/search/movie?include_adult=false&page=1&query=hulk&language=en-US&api_key=YOUR_API_KEY_HERE");

        xhr.send(data);
    }
}

标签: jsonblackberry-10

解决方案


您需要使用onreadystatechange事件处理程序。GET此外,您在发出请求时不需要传递数据。我已删除该withCredentials行,因为在此示例中不需要它。

XMLHttpRequest您可以在这里 了解更多信息: https ://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

onCreationCompleted: {
    sendRequest();
}

function sendRequest() {
    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function () {
        if (xhr.readyState === XMLHttpRequest.DONE) {
            var json = JSON.parse(xhr.responseText);
            var results = json.results;
            var count = results.length;

            console.log("There are " + count + " results :");
            json.results.forEach((value, index) => 
            {
              console.log(index + " - " + value.title);
            });
        }
    };

    xhr.open("GET", "https://api.themoviedb.org/3/search/movie?include_adult=false&page=1&query=hulk&language=en-US&api_key=YOUR_API_KEY_HERE");
    xhr.send();
}

这是XMLHttpRequest我很久以前制作的一个使用示例: https ://github.com/RodgerLeblanc/Markup/blob/master/assets/main.qml


推荐阅读