Home > Enterprise >  Cant send XMLHttpRequest in Android 11
Cant send XMLHttpRequest in Android 11

Time:01-20

Im using a WebView in Android studio and running it on a Physical Zebra TC52 Device which runs Android 11. In the HTML I have a button that onclick calls the getData function. The XMLHTTPRequest always returns the status 0 and the response Text is empty. I have tried this code on https://jsfiddle.net/ and it worked fine. I dont know what the issue is

function displayData(data) {
    document.getElementById('size_value').textContent = "10.5cm x 7cm";
    document.getElementById('colour_value').textContent = "Red";
    document.getElementById('material_value').textContent = "Metal";
    document.getElementById('send_date_value').textContent = "2022-12-25";
    document.getElementById('table').style.visibility = "visible";
}

function loadJSON(path, success) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
            document.getElementById('table').style.visibility = "visible";
            document.getElementById('status_value').textContent = xhr.status;
            document.getElementById('content_value').textContent = xhr.responseText;
            if (xhr.status === 200) {
                success(JSON.parse(xhr.responseText));
            }
        }
    };
    xhr.open('GET', path, true);
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.send();
}

function getData() {
    //this will contain an API call for the data
    loadJSON("https://catfact.ninja/fact", displayData);
}

I have tried the code on https://jsfiddle.net/ and it worked. I would like to call an API and get the JSON Data in return in order to fill it into the HTML fields

CodePudding user response:

You need to add internet permission to you android app:

 <uses-permission android:name="android.permission.INTERNET" /> 

https://developer.android.com/training/basics/network-ops/connecting

  • Related