2016-04-12 58 views
1

新事物的這一方,似乎無法找到正確的語法。在POST請求負載中,我需要根據我嘗試訪問的服務包含「grant_type = client_credentials」。但是,我找不到JavaScript語法在請求負載中包含用戶名和密碼。以下是我迄今爲止(我已刪除了我的原因是顯而易見的密鑰和密碼):提前XMLHTTPRequest返回錯誤請求(400) - 「需要參數:授權類型」

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); 
     } 
    } 
} 

謝謝,一直停留在這最後幾個小時。

回答

1

只需將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); 
     } 
    } 
} 
相關問題