JavaScriptでPOSTリクエストを送りたいです。
サーバ側から要求されたヘッダー情報は以下の通りです。

  • Basic認証
  • 'Accept'は'application/json'
  • 'Content-Type'は'application/json'
  • 'Content-Length'は'*'
  • bodyとしてJSON形式のemail
    それで、自分のコードです。

    var btn = document.getElementById('btn');
    
    btn.addEventListener( 'click' , function() {
    
        var clientId = "*自分のID*";
        var clientSecret = "*自分のPW*";
        var data = { email:"*自分のemail*" };
    
        var authorizationBasic = window.btoa(clientId + ':' + clientSecret);
    
        var request = new XMLHttpRequest();
        request.open('POST', '*サーバURL*');
        request.setRequestHeader('Authorization', 'Basic ' + authorizationBasic);
        request.setRequestHeader('Accept', 'application/json');
        request.setRequestHeader('Content-Type', 'application/json');
        //request.setRequestHeader('Content-Length', '*');
        request.send(JSON.stringify(data));
    
        request.onreadystatechange = function () {
            if (request.readyState === 4) {
                alert(request.responseText);
            }
        };
    
    } );
    

HTMLで実行してもMACのターミナルで実行してもうまく行かないんですが、どこが間違っているんでしょうか?
(HTMLで実行したときChromeではヘッダーとしてContent-Lengthを設定することはできないそうで、そこはコメントアウトしています。)

ちなみに、HTMLで実行したら以下のエラーでした。

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 404