JSON ritorna sempre "client_id non specificato"

sto cercando di ottenere un token dal servizio ArcGIS Online usando un Javascript. tuttavia, è sempre restituire un errore che indica che il client_id non è specificato.

sto facendo tutto qui?

<script type="text/javascript">
    var MyJSONText = '{"client_id":"<<MY_CLIENT_ID>>","client_secret":"<<MY_CLIENT_SECRET>>","grant_type":"client_credentials","expiration":"1440","f":"json"}';
    var MyJSON = JSON.parse(MyJSONText);
    xhr = new XMLHttpRequest();
    xhr.open("POST", "https://www.arcgis.com/sharing/rest/oauth2/token/");
    xhr.send(MyJSON);
    xhr.onreadystatechange = function ()
    {
        if (xhr.readyState == 4 && xhr.status == 200)
        {
            alert(xhr.responseText);
        }
    }

</script>

Edit - errore completo è:

{"error":{"code":400,"error":"invalid_request","error_description":"client_id not specified","message":"client_id not specified","details":[]}}

En title : JSON always returning "client_id not specified"

4 Comments:

  1. sono stato in grado di recuperare un token di accesso utilizzando application/x-www-form-urlencoded richiesta:

    POST https://www.arcgis.com/sharing/rest/oauth2/token HTTP/1.1
    User-Agent: Fiddler
    Content-Type: application/x-www-form-urlencoded
    Host: www.arcgis.com
    Content-Length: 126
    
    client_id=<YOUR ID>&client_secret=<YOUR SECRET>&grant_type=client_credentials&expiration=1440&f=json
    

    il che significa che potrebbe essere necessario specificare l'intestazione della richiesta Content-Type quando si effettua la richiesta XHR:

    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    

    e naturalmente correttamente la formattazione del corpo come application/x-www-form-urlencoded invece di JSON. nei miei test questo endpoint non funzionava con JSON payload.

    purtroppo da quello che sembra, l'endpoint token non supporta l'impostazione del Content-Type intestazione della richiesta nella sua politica CORS che significa che si potrebbe essere fuori di fortuna nel chiamarlo con javascript. inoltre their documentation non menziona nulla di javascript come lingua supportata.

    quindi, fondamentalmente se si vuole fare questo lavoro si potrebbe ottenere il token di accesso sul lato server e passare lungo al client.

    1. questo riporta un Request header field Content-type is not allowed by Access-Control-Allow-Headers in preflight response. nella console.log.
    1. yeah, ancora ottenendo quello stesso errore. grazie comunque - lo segnerà come la risposta. sembra che dovrò rivalutare quale metodo io uso e guardare più in come utilizzare node.js

More similar articles:

  • ritorna un elenco delle località di Google Maps che ho specificato in precedenza
  • jQuery: cosa ritorna jQuery quando l'oggetto jQuery non trova un selettore di classe specificato?
  • WCF IErrorHandler Extension non ritorna specificato Fault
  • pthread_cond_timedwait non ritorna dopo il timeout specificato
  • ritorna il carattere associato al codice Asci specificato in R
  • perché jQuery trova corrispondenza con elementi che non hanno nemmeno specificato attributi e valori CSS?
  • ArcMap Extension GetTempPath ritorna con una sottocartella extra
  • mysqldump non ritorna al file specificato
  • is_SRVROLEMEMBER ritorna quando viene specificato il login del dominio
  • MapFragment ArcGIS - Il bambino specificato ha già un genitore
  • come risolvere il ciclo se metti un valore di errore e ritorna alla dichiarazione ELSE sul mio codice specificato in Java
  • selezione della classe di funzionalità con un nome specificato in ArcGIS python (Arcpy)
  • tela: come tracciare una spirale intorno ad un punto viola specificato dal punto arancione specificato al punto verde specificato
  • installare il pacchetto arcgisbing nella versione R 3.5.0, attenzione: dato che "lib" non è specificato, il pacchetto "" arcgisbing "non è disponibile
  • perché il poligono rosso esce dal piano, quindi ritorna al suo posto specificato di nuovo?
  • filtro data hotel: ritorna solo hotel che rispettano il periodo di soggiorno minimo specificato per range (SQL o Elasticsearch)
  • Tao_IDL ritorna con un errore non specificato durante la compilazione usando gcc
  • utilizzando Moto a Mock Lambda Response ritorna 'b "errore in esecuzione lambda: (2,' WaitNamedPipe ',' Il sistema non può trovare il file specificato. ')' '
  • ritorna istanza classe utilizzando generico all'interno di oggetto compagno per il metodo specificato nel tratto
  • ritorna un intervallo di elenco specificato in Scala
  • ritorna una funzione generica con tipo specificato
  • funzione membro nella coda di priorità java che ritorna ma non rimuove il valore specificato?
  • ritorna l'ArrayList aggiornato <characters>dopo aver rimosso l'elemento specificato all'indice</characters>
  • sto inviando una e-mail di prova utilizzando perl ma ritorna con il sistema non può trovare il percorso specificato
  • perché il programma ritorna con un codice di uscita diverso da quello specificato?
  • Map.contains Valore ritorna Falso anche se il valore specificato esiste in valueset e non esiste un errore di tipo objecttype
  • utilizzando SHA2-512 (CALG_SHA_512) su Windows 7 ritorna "Algoritmo non valido specificato"
  • perché questo cookie non ritorna al percorso specificato quando il dominio inizia con www?
  • PayPal non ritorna all'url specificato nelle impostazioni
  • blocco di un database di testo in N blocchi uguali e mantenere l'intestazione