2017-08-12 25 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瞭解更多詳情。

相關問題