DocuSignApi与Angular集成方案验证及CORS报错问题咨询
DocuSign与Angular集成方案校验及报错解决
两个方案的可行性校验方法
方案1:Angular调用.NET Core中间层对接DocuSign
该方案为生产级推荐方案,可按以下步骤校验可行性:
- 先单独调试.NET Core中间层:确认已通过Nuget引入
DocuSign.eSign依赖,配置好集成密钥、用户ID、RSA密钥等参数,中间层可独立完成和DocuSign的授权交互,正常获取access token及用户信息 - 校验中间层接口跨域配置:确认.NET Core侧已配置CORS规则,允许Angular所在的域名(如
http://localhost:81)访问接口 - 端到端联调校验:Angular调用中间层登录接口,确认可以正常拿到返回的用户信息、接口调用凭证,后续DocuSign的业务接口请求都走中间层转发即可,不会暴露敏感密钥到前端。
方案2:Angular直接调用DocuSign接口
该方案仅适合内部测试/简单场景使用,可按以下步骤校验可行性:
- 确认DocuSign后台集成密钥配置:已勾选「允许隐式授权」,且将前端地址
http://localhost:81添加到重定向URI白名单,路径完全匹配(包括末尾斜杠) - 确认授权调用方式符合规范:OAuth授权端点不支持AJAX异步调用,必须通过页面跳转的方式发起请求
- 校验后续业务接口调用权限:拿到token后调用DocuSign业务接口时,确认请求头已携带正确的Authorization字段,且DocuSign侧已配置对应接口的CORS规则。
方案2报错解决思路
你遇到的CORS报错是因为使用AJAX方式请求OAuth授权端点导致的,该场景本身不支持异步请求,按以下步骤修改即可:
- 替换授权请求方式:不要用
_httpClient.get发起异步请求,直接通过页面跳转访问授权地址:
var authUrl = "https://account-d.docusign.com/oauth/auth?response_type=token&scope=signature&client_id=XXXXXXXXXXXXXXX-01caXXXXXXXX&state=a39fh23hnf23&redirect_uri=http://localhost:81/"; // 直接跳转授权页 window.location.href = authUrl;
- 解析重定向返回的token:用户授权完成后,DocuSign会自动跳转到你配置的
redirect_uri地址,token信息会放在URL的hash段中,在对应路由页面解析即可:
ngOnInit() { const hashStr = window.location.hash.slice(1); const urlParams = new URLSearchParams(hashStr); const accessToken = urlParams.get('access_token'); if (accessToken) { // 存储token,后续调用DocuSign接口时放在请求头Authorization字段即可 } }
- 额外校验:若后续调用DocuSign业务接口仍有CORS报错,可确认是否是请求头添加了DocuSign不允许的自定义字段,若仍无法解决建议切换到方案1,所有接口走中间层转发即可完全规避跨域问题。
内容的提问来源于stack exchange,提问作者Shyam Vashista
相关产品推荐
相关产品推荐

