XMLHTTPRequest 返回错误请求 (400) - "Require Param: grant_type"

XMLHTTPRequest Returning Bad Request (400) - "Require Param: grant_type"

这方面的新手,似乎找不到合适的语法。在 POST 请求负载中,我需要根据我尝试访问的服务包含 "grant_type=client_credentials"。但是,我找不到 JavaScript 语法来在请求负载中包含用户名和密码。到目前为止,这是我所拥有的(出于显而易见的原因,我已经删除了我的密钥和秘密):

    var request = new XMLHttpRequest();
    var path="https://ops.epo.org/3.1/auth/accesstoken";
    request.onreadystatechange=state_change;

    var encodedData = window.btoa(Key:Secret"); //encode consumer key and secret key

    document.write(encodedData);

    request.open("POST", path, true);
    request.setRequestHeader("Authorization", encodedData);
    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    request.send(null);

    function state_change() {
        if (request.readyState == "4") //Request finished and response is ready
        {
            if (request.status == "200") {


   alert("Success");
        }
        else {
            alert("Problem retrieving data");
            console.log(this.responseXML);
        }
    }
}

在此先感谢,过去几个小时一直停留在这个问题上。

只需要从发送负载中删除 null 并替换为 'grant_type=client_credentials'。

var request = new XMLHttpRequest();
var path="https://ops.epo.org/3.1/auth/accesstoken";
request.onreadystatechange=state_change;

var encodedData = window.btoa("Key:secret"); //encode consumer key and secret key

request.open("POST", path, true);
request.setRequestHeader("Authorization", encodedData);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

request.send('grant_type=client_credentials');

function state_change() {
    if (request.readyState == "4") //Request finished and response is ready
    {
        if (request.status == "200") {
            alert("Success");
            document.write(request.responseText);;

        }
        else {
            alert("Problem retrieving data");
            console.log(this.responseXML);
        }
    }
}