Javascript {错误代码:';尝试发送信封时,请求正文无效'
我正在尝试使用模板发送信封。我使用表单数据捕获此调用所需的所有字段。我创建了下面的对象,然后从用户添加值。然后在发送到http post之前通过JSON.stringify发送。由于某些原因,仍然收到错误无效的\u BODY\u请求Javascript {错误代码:';尝试发送信封时,请求正文无效',javascript,node.js,docusignapi,Javascript,Node.js,Docusignapi,我正在尝试使用模板发送信封。我使用表单数据捕获此调用所需的所有字段。我创建了下面的对象,然后从用户添加值。然后在发送到http post之前通过JSON.stringify发送。由于某些原因,仍然收到错误无效的\u BODY\u请求 var data = [ { "documents": [ { "documentId": "27730895", "fileExtension": "pdf", "name": "Top Leve
var data = [
{
"documents": [
{
"documentId": "27730895",
"fileExtension": "pdf",
"name": "Top Level Staging",
"order": "1"
}
],
"emailSubject": "Please Sign document",
"status": "sent",
"templateId": "4fda9b93-9c82-4f23-bd06-67f9b35f0183",
"templateRoles": [
{
"email": "",
"name": "",
"roleName": "Client",
"tabs": {
"textTabs": [
{
"documentId": "27730895",
"pageNumber": "1",
"tabLabel": "cPackage",
"value": ""
},
{
"documentId": "27730895",
"pageNumber": "1",
"tabLabel": "sDate",
"value": ""
},
{
"documentId": "27730895",
"pageNumber": "1",
"tabLabel": "pAddress",
"value": ""
},
{
"documentId": "27730895",
"pageNumber": "2",
"tabLabel": "rAmount",
"value": ""
}
]
}
}
]
}];
我创建它并使用表单中提交的用户数据将其追加
var contract_data = {
cEmail:req.body.cEmail,
FullName:req.body.cName,
pAddress:req.body.pAddress,
cAmount:req.body.cAmount,
rAmount:req.body.rAmount,
dCompleted:req.body.dCompleted,
cDate:req.body.cDate,
cPackage:req.body.cPackage
};
/data[0].templateRoles[1] = contract_data.cEmail;
data[0].templateRoles[2] = contract_data.FullName;
data[0].templateRoles[0].tabs.textTabs[0].value = contract_data.cPackage;
data[0].templateRoles[0].tabs.textTabs[1].value = contract_data.dCompleted;
data[0].templateRoles[0].tabs.textTabs[2].value = contract_data.pAdress;
data[0].templateRoles[0].tabs.textTabs[3].value = contract_data.rAmount;
然后我通过JSON.stringify()发送数据数组,如下所示
随信寄出
request({
headers:{"X-DocuSign-Authentication":creds},
url: "https://demo.docusign.net/restapi/v2/accounts/3465212/envelopes",
json: true, // <--Very important!!!
body: body,
method: "POST",
}, function (error, response, body){
console.log(response.body);
});
请求({
标题:{“X-DocuSign-Authentication”:creds},
url:“https://demo.docusign.net/restapi/v2/accounts/3465212/envelopes",
json:true,//请求主体的根不应是数组
var tRole = data.templateRoles[0];
tRole.email = contract_data.cEmail;
tRole.name = contract_data.FullName;
tRole.tabs.textTabs[0].value = contract_data.cPackage;
tRole.tabs.textTabs[1].value = contract_data.dCompleted;
tRole.tabs.textTabs[2].value = contract_data.pAdress;
tRole.tabs.textTabs[3].value = contract_data.rAmount;
更改如下。删除了[]
var data =
{
"documents": [
{
//Removed document properties for brevity
}
],
"emailSubject": "Please Sign document",
"status": "sent",
"templateId": "4fda9b93-9c82-4f23-bd06-67f9b35f0183",
"templateRoles": [
{
//Removed template roles for brevity
}
]
};
然后按如下方式更新模板角色。使用data
而不是data[0]
,因为它不再是数组
var tRole = data.templateRoles[0];
tRole.email = contract_data.cEmail;
tRole.name = contract_data.FullName;
tRole.tabs.textTabs[0].value = contract_data.cPackage;
tRole.tabs.textTabs[1].value = contract_data.dCompleted;
tRole.tabs.textTabs[2].value = contract_data.pAdress;
tRole.tabs.textTabs[3].value = contract_data.rAmount;
cPackage、sDate、pAddress和rAmount选项卡是否在模板-4fda9b93-9c82-4f23-bd06-67f9b35f0183中?如果您想使用模板发送信封,那么为什么还要添加文档?是的,这些都在模板上,在测试后从API资源管理器复制了对象。我确实删除了文档,但仍然没有goI认为可能是这样t当我删除外括号时,我会得到查找失败错误。当我添加回时,程序会一直执行API调用并返回页面,而不是轰炸。查找失败错误出现在哪里?您是否更新了代码,在其中替换请求正文中的值?更新代码,在其中替换v值,然后返回到{errorCode:'INVALID_REQUEST_BODY',尝试删除语句var BODY=JSON.stringify(数据)
在您的请求中直接使用数据。由于您已经将内容类型指定为json,因此不需要对请求正文进行字符串化。通过一些调整,我使其工作正常。您在这一次上确实控制了整个进程