2016-04-12 5 views
1

neu auf dieser Seite der Dinge und scheint nicht die richtige Syntax zu finden. In den POST-Request-Payloads muss ich "grant_type = client_credentials" entsprechend dem Service einbeziehen, auf den ich zugreifen möchte. Ich kann jedoch die JavaScript-Syntax nicht finden, um den Benutzernamen und das Kennwort in die Anforderungsnutzinformationen aufzunehmen. Hier ist, was ich bisher (ich habe meinen Schlüssel und Geheimnis aus offensichtlichen Gründen entfernt):XMLHTTPRequest Schlechte Anfrage zurücksenden (400) - "Require Param: grant_type"

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

Vielen Dank im Voraus, auf diese für die letzten paar Stunden stecken geblieben.

Antwort

1

Nur benötigt, um Null aus dem Send-Payload zu entfernen und durch 'grant_type = client_credentials' zu ersetzen.

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