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"
sono stato in grado di recuperare un token di accesso utilizzando
application/x-www-form-urlencoded
richiesta:il che significa che potrebbe essere necessario specificare l'intestazione della richiesta Content-Type quando si effettua la richiesta XHR:
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. inoltretheir documentation
non menziona nulla dijavascript
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.
Request header field Content-type is not allowed by Access-Control-Allow-Headers in preflight response.
nella console.log.client_id not specified
.