2017-08-12 26 views
1

我是Autodesk API的新手,并尝试在我的网站上使用JavaScript创建Viewer,该网站由支持JavaScript的第三方(认为Weebly,Squarespace等)托管。如果我使用邮递员进行POST调用https://developer.api.autodesk.com/authentication/v1/authenticate,但我不能从一般使用的角度来帮助我,我可以成功获取访问令牌。当我尝试使用XMLHttpRequest并从我的javascript中进行相同的POST调用时,出现与CORS相关的错误(“No'Access-Control-Allow-Origin'标头存在于请求的资源中。”)。我无法找到任何可以使用javascript调用Autodesk API并在自己的网站上创建Autodesk查看器的地方。这可能是单独使用JavaScript吗?任何信息都会很棒。Autodesk伪造:使用POST/XMLHttpRequest和Javascript获取访问令牌?

我正在从一步一步的API教程https://developer.autodesk.com/en/docs/viewer/v2/tutorials/basic-viewer/,这是伟大的,但似乎并没有表明如何在你的应用程序中实际的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); 
} 

感谢。

+1

请添加你如何做的JavaScript – ChiefTwoPencils

+0

通话**编辑补充Javascript代码** 功能为gettoken(){ VAR = xhttp新的XMLHttpRequest(); var url =“https://developer.api.autodesk.com/authentication/v1/authenticate?client_id=MY_CLIENT_ID&client_secret=MY_CLIENT_SECRET&grant_type=client_credentials&scope=data:read”; xhttp.open(“GET”,url,true); xhttp.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”); xhttp.send(); } – emart

+0

Yuck,这是上面可怕的格式。对于那个很抱歉。 – emart

回答

0

你不能,这不支持。 Autodesk Forge仅从服务器端支持OAuth,这更安全。解释一下,你的方法要求在客户端公开客户端ID,因此API通过CORS头阻塞它。

0

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

查看here了解更多详情。

相关问题