JSON - 使用Javascript获取令牌

时间:2016-07-22 04:52:01

标签: javascript json post arcgis

我正在尝试通过Javascript获取ArcGIS Online服务的令牌,如their website (under "Using REST")所述,并且想知道我的代码是否正确。

这只是一些确实执行的Javascript,但警报始终返回null:

<script type="text/javascript">

    xhr = new XMLHttpRequest();
    var url = "https://www.arcgis.com/sharing/rest/oauth2/token/";
    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-type", "application/json");
    xhr.onreadystatechange = function ()
    {
        if (xhr.readyState == XMLHttpRequest.DONE)
        {
            alert(xhr.responseXML);
        }
    }
    var MyJSON = JSON.stringify({ "client_id": "<MY_CLIENT_ID>", "client_secret": "<MY_CLIENT_SECRET>" });
    xhr.send(MyJSON);

</script>

我认为我已经找到了正确的设置,但代码是否正确?它应该返回一个access_token属性。

编辑 - 我正在使用警报来检查它是否正在返回某些内容。目前它正在返回null。

再次编辑 - 这与this question

中的代码相同

AND EDIT AGAIN:

ArcGIS Online似乎在Node.js中提供以下代码示例:

var request = require('request'); // npm install request

// generate a token with your client id and client secret
request.post({
url: 'https://www.arcgis.com/sharing/rest/oauth2/token/',
json: true,
form: {
  'f': 'json',
  'client_id': 'YOUR_APPLICATIONS_CLIENT_ID',
  'client_secret': 'YOUR_APPLICATIONS_CLIENT_SECRET',
  'grant_type': 'client_credentials',
  'expiration': '1440'
}
}, function(error, response, body){
console.log(body.access_token);
});

var request = require('request'); // npm install request

request.post({
url: 'http://geoenrich.arcgis.com/arcgis/rest/services/World/GeoenrichmentServer/Geoenrichment/enrich',
json:true,
form: {
  f: 'json',
  token: 'J-S0KLOl5_8UIqzZfmjPp6KQQeN5rnDRxRKB73n7B2hxuuI6Fec09IsIk0n8a0j-LoBskkio0I5fL0sY5iLf1J8lfhgq1gdaOAB15sm2wEaRooZbWz87bWptfGOMlqfFCoGRwF9n0h3tOd21lMyB9g..',
  studyAreas: '[{"geometry":{"x":-117.1956,"y":34.0572}}]'
}
}, function(error, response, body){
console.log(body);
});

但即使require('request');未定义,这也会遇到障碍。

编辑(再次) - 安装了Node.js并且它可以正常工作,但我无法弄清楚如何获取access_token。

0 个答案:

没有答案