Autodesk Forge 尝试在线访问 API 时出错
Posted
技术标签:
【中文标题】Autodesk Forge 尝试在线访问 API 时出错【英文标题】:Autodesk Forge Error trying to access the API online 【发布时间】:2021-08-16 05:14:51 【问题描述】:我在在线服务器上加载 3D 模型时遇到问题,显示的错误与访问 Forge API 有关,本地可以正常运行,但是当安装在服务器上或创建网站时,标记以下错误“加载资源失败:服务器响应状态为 404(未找到)”,然后是“onDocumentLoadFailure() - errorCode:7”。 正如我评论的那样,我发现奇怪的是,在本地,它是有效的。附上显示错误的代码段。
function getAccessToken()
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", '/api/forge/toke', false); //Address not found
xmlHttp.send(null);
return xmlHttp.responseText;
非常感谢您。
【问题讨论】:
【参考方案1】:我已经找到了问题。当我进行部署时,我必须更改向公众发出请求的 url 或域的名称。例如:mywebsite.com/aplication-name/api/forge/token。
【讨论】:
【参考方案2】:你确定你在本地运行的代码和你部署的代码真的一样吗?
getAccessToken
函数似乎不正确,原因如下:
/api/forge/token
而不是 /api/forge/toke
?
更重要的是,HTTP请求是异步的,也就是说它不能在调用xmlHttp.send()
后立即返回响应。您可以在https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest 中找到有关XMLHttpRequest
用法的更多详细信息。
最后,假设函数被传递给Autodesk.Viewing.Initializer
选项,它应该使用传递给它的回调参数返回令牌(如https://forge.autodesk.com/en/docs/viewer/v7/developers_guide/viewer_basics/initialization/#example所示)。
这样,您的 getAccessToken
应该看起来更像这样(使用更现代的 fetch
和 async/await):
async function getAccessToken(callback)
const resp = await fetch('/api/forge/token');
const json = await resp.json();
callback(json.access_token, json.expires_in);
【讨论】:
您好,非常感谢您抽出宝贵时间回答我的问题。我已经发现了问题。当我进行部署时,我必须更改向公众发出请求的 url 或域的名称。例如:mywebsite.com/api/forge/token。在我写的时候我犯了一个错误的问题,这就是为什么它说“toke”而不是“token”。以上是关于Autodesk Forge 尝试在线访问 API 时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Autodesk Forge API 问题创建照片附件?
使用 Autodesk Forge API 检索“描述”或“自定义属性”字段