Javascript {错误代码:';尝试发送信封时,请求正文无效'

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

我正在尝试使用模板发送信封。我使用表单数据捕获此调用所需的所有字段。我创建了下面的对象,然后从用户添加值。然后在发送到http post之前通过JSON.stringify发送。由于某些原因,仍然收到错误无效的\u BODY\u请求

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,因此不需要对请求正文进行字符串化。通过一些调整,我使其工作正常。您在这一次上确实控制了整个进程