Javascript JSON始终返回“;“未指定客户id”;
我正在尝试使用Javascript从ArcGIS在线服务获取令牌。但是,它总是返回一个错误,表明没有指定客户端id 我在这里做的一切都对吗Javascript JSON始终返回“;“未指定客户id”;,javascript,json,arcgis,Javascript,Json,Arcgis,我正在尝试使用Javascript从ArcGIS在线服务获取令牌。但是,它总是返回一个错误,表明没有指定客户端id 我在这里做的一切都对吗 <script type="text/javascript"> var MyJSONText = '{"client_id":"<<MY_CLIENT_ID>>","client_secret":"<<MY_CLIENT_SECRET>>","grant_type":"client_cred
<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>
我能够使用
应用程序/x-www-form-urlencoded
请求检索访问令牌:
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
当然,正确地将正文格式化为application/x-www-form-urlencoded
,而不是JSON。在我的测试中,这个端点不适用于JSON负载
不幸的是,从外观上看,令牌端点不支持在其CORS策略中设置内容类型
请求头,这意味着您可能无法使用javascript调用它。此外,没有提到任何关于javascript
作为受支持语言的内容
因此,基本上,如果您想实现这一点,您可以在服务器端获取访问令牌并将其传递给客户端。访问令牌生成Url=> 标题 对于邮递员中的尸体,选择“x-www-form-urlencoded” 之后,您将使用token获得相应的预期结果
{"access_token":"S-z3mxAqsZBeihx8NgFmNGsZAUGfzKZWCYVV2TiQO422u9XDLTCTZAkpoecyxx_LAc71I_tPkeeOlo2Pzkapv01bBOA03SzMRjRMOm-h3ljTl-pb3XdffoyYjCflE4F8LD377DbpjDWkupkdTaxJpg..","expires_in":7200}
在飞行前响应中,Access Control Allow header不允许返回
请求标头字段内容类型。
在console.log中。抱歉,返回时仍然未指定客户端id
错误。是的,仍然收到相同的错误。无论如何,谢谢你-我会把它标记为答案。看起来我必须重新评估我使用的方法,并进一步研究如何使用node.js
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
{"access_token":"S-z3mxAqsZBeihx8NgFmNGsZAUGfzKZWCYVV2TiQO422u9XDLTCTZAkpoecyxx_LAc71I_tPkeeOlo2Pzkapv01bBOA03SzMRjRMOm-h3ljTl-pb3XdffoyYjCflE4F8LD377DbpjDWkupkdTaxJpg..","expires_in":7200}