Autodesk AR/VR Toolkit接口在Unity3D WEBGL中请求失败如何解决?
错误根因
Autodesk并未专门屏蔽Unity WebGL的请求,你遇到的Access-Control-Allow-Origin Missing Header报错是浏览器同源策略的标准限制:
- 你在https://reqbin.com/ 、Unity Editor中发起请求时,运行环境不受浏览器同源策略约束,因此请求可以正常响应
- Unity WebGL构建产物运行在浏览器沙箱内,所有跨域请求必须符合CORS规则,才会触发该错误
可行解决方案
1. 后端代理中转(最稳妥)
所有发往GET /modelderivative/v2/arkit/{urn}/scenes/{scene_id}及其他Autodesk接口的请求,统一先发送到你自己的同域后端服务,由后端服务转发请求到Autodesk平台,拿到结果后再返回给WebGL前端。
该方案完全规避跨域问题,同时还能避免Autodesk访问密钥、令牌等敏感信息暴露在前端代码中,安全性更高。
2. 配置Autodesk应用跨域白名单
如果你不想额外搭建后端服务,可登录Autodesk Forge开发者后台,找到你当前使用的应用,将WebGL应用部署的域名(含端口,本地调试时也要添加localhost对应的调试地址)添加到应用的允许跨域源列表中,保存后等待配置生效即可。
3. 清理非法请求头
检查WebGL侧发起的请求是否添加了Autodesk接口未支持的自定义请求头,非标准请求头会触发浏览器的预检请求,一旦接口不识别对应请求头就会返回跨域错误,只保留接口要求的必要头(如Authorization头)即可。
注意事项
Autodesk Forge公开接口默认已适配CORS规则,只要配置正确无需额外修改接口请求逻辑,不要使用JSONP等过时方案尝试绕过跨域,存在严重安全风险且大部分接口不支持该类请求方式。
内容的提问来源于stack exchange,提问作者shockbreak
相关产品推荐
相关产品推荐

