如何解决Autodesk Forge 尝试在线访问 API 时出错
我在在线服务器上加载 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;
}
非常感谢您。
解决方法
你确定你在本地运行的代码和你部署的代码真的一样吗?
DATES="31 May 2021 10:22:01 30 May 2021 10:23:01 29 May 2021 10:24:01"
WC=$(echo $DATES | wc -w)
DATE_COUNT=$(( $WC / 4 - 1 ))
for i in {0..$DATE_COUNT}
do
YEAR=$(echo $DATES | awk '{print $3}')
MONTH=$(echo $DATES | awk '{print $2}')
MONTH=$( date --date="$(printf "01 %s" $MONTH)" +"%m")
DAY=$(echo $DATES | awk '{print $1}')
TIME=$(echo $DATES | awk '{print $4}' | sed 's/://g')
DATE_ARRAY[$i]="$YEAR$MONTH$DAY$TIME"
#Remove first 4 words from string
done
函数似乎不正确,原因如下:
- 首先,URL 中似乎有一个错字 - 不应该是
getAccessToken
而不是/api/forge/token
吗? - 更重要的是,HTTP 请求是异步,这意味着它无法在调用
/api/forge/toke
后立即返回响应。您可以在 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest 中找到有关xmlHttp.send()
用法的更多详细信息。 - 最后,假设函数被传递给
XMLHttpRequest
选项,它应该使用传递给它的回调参数返回令牌(如 https://forge.autodesk.com/en/docs/viewer/v7/developers_guide/viewer_basics/initialization/#example 所示)。
这样,您的 Autodesk.Viewing.Initializer
应该看起来更像这样(使用更现代的 getAccessToken
和 async/await):
fetch
,
我已经找到了问题所在。当我进行部署时,我必须更改向公众发出请求的 URL 或域的名称。例如:mywebsite.com/aplication-name/api/forge/token。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。