gpt4 book ai didi

javascript - XSRF 与 AngularJS : DocuSign API Embedded View Client-Side implementation

转载 作者:行者123 更新时间:2023-12-02 16:39:13 26 4
gpt4 key购买 nike

我有一个 AngularJS 应用程序,它利用 DocuSign 嵌入式签名 REST API 在用户填写表单后打开一个包含 DocuSign 嵌入文档的选项卡。

我在 StackOverflow 上查看了一些主题以寻求帮助,但找不到与我的实现类似的内容。

我在登录时继续收到 401 错误,我很确定这是因为 CORS 被阻止。如有任何帮助,我们将不胜感激!

这是我的 DocuSign 工厂:

app.factory('dsFactory', function($http) {
return {
login: function(templateId) {
return $http({
url: 'https://demo.docusign.net/restapi/v2/login_information',
method: 'GET',
params: {
'X-DocuSign-Authentication': {
'DocuSignCredentials': {
'UserName': 'xxx',
'Password': 'xxx',
'IntegratorKey': 'xxx'
}
}
}
});
},
envelope: function(baseUrl, templateId, recipientName, templateRoleName) {
var url = baseUrl + "/envelopes";
return $http({
url: url,
method: 'POST',
params: {
"emailSubject": "DocuSign API call - Embedded Sending Test",
"templateId": templateId,
"templateRoles": [{
"email": "xxx",
"name": recipientName,
"roleName": templateRoleName
}],
"status": "sent"
}
});
},
getUrl: function(baseUrl, envelopeId, recipientName) {
var url = baseUrl + "/envelopes/" + envelopeId + "/views/recipient";
return $http({
url: url,
method: 'POST',
params: {
"returnUrl": "http://www.docusign.com/devcenter",
"authenticationMethod": "email",
"email": "xxx",
"userName": recipientName
}
});
}
};
});

这是使用嵌入文档 View 打开新选项卡的 promise 链:

// Elaborate promise chain for DocuSign login and document url retrieval
loginPromise = dsFactory.login($scope.templateId);
loginPromise.then(
function(payload) {
$scope.dsBaseUrl = payload.data.loginAccounts[0].baseUrl;
envelopePromise = dsFactory.envelope($scope.dsBaseUrl, $scope.templateId, $scope.businessName, 'Signer');
envelopePromise.then(
function(payload) {
$scope.dsEnvelopeId = payload.data.envelopeId;
urlPromise = dsFactory.getUrl($scope.dsBaseUrl, $scope.dsEnvelopeId, $scope.businessName);
urlPromise.then(
function(payload) {
$scope.dsCompleteUrl = payload.data.returnUrl;
window.open($scope.dsCompleteUrl);
},
function(errorPayload) {
console.log('retrieve DS url failed' + '\n');
console.log('Status: ' + errorPayload.status);
}
);
},
function(errorPayload) {
console.log('retrieve DS envelopeId failed' + '\n');
console.log('Status: ' + errorPayload.status);
}
);
},
function(errorPayload) {
console.log('DS login failed' + '\n');
console.log('Status: ' + errorPayload.status);
}
);

对于如何使此集成正常工作有任何想法或帮助吗?

也许与标题有关?

最佳答案

此问题并非 Angular 特有。

  1. 如果您可以使用回调或要求目标域在“Access-Control-Allow-Origin” header 中添加您的域。对于您的具体问题,我认为您不能要求 DocuSign 这样做。它留给你#2。

  2. 您可以从服务器端调用API。

Angularjs https(浏览器)->您的服务器->DocuSign API>您的服务器->浏览器

关于javascript - XSRF 与 AngularJS : DocuSign API Embedded View Client-Side implementation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27643399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com