Fetch with setting AJAX Headers in Request

Below steps are done in this example

Input for creating base64 token


(Note: This works only in server) Inspect and check in Network -> All -> select <filename> (secret.html) -> Headers -> Request Headers -> Here you can see the property "Authorization: Basic S2FydGhpOkthcnRoaSgp" <<Base64 token>> which you setted up, by geting from user input & password and ket it as Authorization value.

document.getElementById("myForm")
    .addEventListener("submit", loadSecret);

function loadSecret(e){

    e.preventDefault(); //Preventing Default form submission
    
    console.log(e); //has the event object

    let username_val = document.getElementById('username').value;
    let password_val = document.getElementById('password').value;

    //console.log(password_val)


    //create our own Base64 token
    let encodedData = window.btoa(username_val + ':' + password_val)
    //console.log(window.btoa('Karthi'))
    //console.log(encodedData)

    let authToken = `Basic ${encodedData}`;
    console.log(authToken)

    //Setup our Ajax ##############################
    let h = new Headers();
    h.append('Authorization', authToken);

    let url = './protected/secret.html';

    let req = new Request(url, {method: "GET", headers: h});

    fetch(req)
        .then(data => data.text())
        //.then(message => console.log(message))
        .then(message => document.getElementById('demo').innerHTML = message)
        .catch(err => {console.log(err);})

}