Autodesk forge:使用POST / XMLHttpRequest和Javascript获取访问令牌?

时间:2017-08-12 19:38:36

标签: javascript post autodesk-forge

我是Autodesk API的新用户,并尝试在我的网站上使用javascript创建Viewer,该网站由支持JavaScript的第三方(想想Weebly,Squarespace等)托管。如果我使用Postman对https://developer.api.autodesk.com/authentication/v1/authenticate进行POST调用,我可以成功获取访问令牌,但从一般用途角度来看,这对我没有帮助。当我尝试使用XMLHttpRequest并从我的javascript进行相同的POST调用时,我收到与CORS相关的错误(" No' Access-Control-Allow-Origin'标头出现在请求的资源上&#34)。我无法在任何地方找到可以使用javascript调用Autodesk的API并在我自己的网站上创建Autodesk查看器的地方。这可能只使用javascript吗?任何信息都会很棒。

我正在使用https://developer.autodesk.com/en/docs/viewer/v2/tutorials/basic-viewer/的分步API教程,这很棒,但似乎并不能说明实际的POST调用如何在您的应用程序中运行,而不是通过邮递员或其他一些测试工具提供令牌。

JavaScript的:

function getToken() { 
    var xhttp = new XMLHttpRequest();
    var url = "https://developer.api.autodesk.com/authentication/v1/authenticate"; 
    var params = "client_id=MY_CLIENT_ID&client_secret=MY_CLIENT_SECRET&grant_type=client_credentials&scope=data:read";
    xhttp.open("POST", url, true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xhttp.send(params);
}

感谢。

2 个答案:

答案 0 :(得分:0)

你不能,这是不受支持的。 Autodesk Forge仅支持服务器端的OAuth,这样更安全。解释,您的方法需要客户ID和秘密将暴露在客户端上,因此API通过CORS头阻止它。

答案 1 :(得分:0)

如果您使用以下编程语言之一:JavaScript(node.js),. Net,Java,Ruby,只需使用现有的SDK。它会让事情变得更容易。

有关详细信息,请参阅here