2016-04-12 28 views
1

Bu şeylerin yanına yeni ve uygun sözdizimini bulamıyor gibi görünmüyor. POST isteği yükünde, erişmeye çalıştığım hizmete göre "grant_type = client_credentials" eklemem gerekiyor. Ancak, kullanıcı adı ve parolayı istek yüküne dahil etmek için JavaScript sözdizimini bulamıyorum. peşinXMLHTTPRequest Geri Dönen Hatalı İstek (400) - "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); 
     } 
    } 
} 

Teşekkür, son birkaç saat boyunca bu sıkışıp: İşte (bildiğimiz nedenlerden ötürü benim anahtar ve gizli kaldırdık) bugüne kadar ne olduğunu.

cevap

1

Gönderme yükünden boş sürücüyü kaldırmanız ve 'grant_type = client_credentials' ile değiştirmeniz yeterlidir.

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