【问题标题】:Retrieving data from infusionsoft to DOMO using plain javascript使用纯 JavaScript 将数据从 infusionsoft 检索到 DOMO
【发布时间】:2017-03-11 16:55:45
【问题描述】:

我正在尝试在 DOMO 中创建自定义连接器以从 infusionsoft 检索数据。我只能在 DOMO IDE 中使用纯 JavaScript。下面的代码是我为向 infusionsoft 的 XML-RPC Api 发出请求而编写的,但我收到了错误代码响应。 DOMO Ide 不支持 Xmlhttprequest。

var xml = '<?xml version="1.0" encoding="UTF-8"?>'+
'<methodCall>'+
  '<methodName>DataService.query</methodName>'+
  '<params>'+
    '<param>'+
      '<value><string>xxxxxxxxxxxxxxxxxxx</string></value>'+
    '</param>'+
    '<param>'+
      '<value><string>Invoice</string></value>'+
    '</param>'+
    '<param>'+
      '<value><int>1000</int></value>'+
    '</param>'+
    '<param>'+
      '<value><int>0</int></value>'+
    '</param>'+
    '<param>'+
      '<value><struct>'+
        '<member><name>Id</name>'+
          '<value><string>[1,2,3,4]</string></value>'+
        '</member>'+
      '</struct></value>'+
    '</param>'+
    '<param>'+
      '<value><array>'+
        '<data>'+
          '<value><string>Id</string></value>'+
          '</data>'+
      '</array></value>'+
    '</param>'+
    '<param>'+
      '<value><string>orderBy</string></value>'+
    '</param>'+
    '<param>'+
      '<value><boolean>ascending</boolean></value>'+
    '</param>'+
  '</params>'+
'</methodCall>';
httprequest.addHeader('Content-Type', 'application/xml');
httprequest.addParameter('xml', xml);

var res = httprequest.post('https://api.infusionsoft.com/crm/xmlrpc/v1?access_token='+metadata.account.accesstoken);
    DOMO.log(res)

我得到的回应是:

<?xml version="1.0" encoding="utf-8"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i4>0</i4></value></member><member><name>faultString</name><value>Failed to parse XML-RPC request: Content is not allowed in prolog.</value></member></struct></value></fault></methodResponse>

【问题讨论】:

    标签: javascript xml-rpc infusionsoft domo


    【解决方案1】:

    “Prolog 中不允许内容”错误表示您在 XML 声明之前传输了某些内容。因为您将 XML 正文添加为参数,所以请求将作为 "xml=" + xml 提交。

    只需将 xml 作为第二个参数传递给 post 请求即可。

    httprequest.addHeader('Content-Type', 'application/xml');
    var res = httprequest.post('https://api.infusionsoft.com/crm/xmlrpc/v1?access_token='+metadata.account.accesstoken, xml);
    

    【讨论】:

      猜你喜欢
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      相关资源
      最近更新 更多