【问题标题】:Is there a way to pass a URLFetchApp.fetch from the gs side to javascript side有没有办法将 URLFetchApp.fetch 从 gs 端传递到 javascript 端
【发布时间】:2020-01-03 19:12:38
【问题描述】:

我试图在单击按钮时解析 XML 文档树。 XML 文件在一个查找函数中获取,该函数接受 2 个值(“id”和“shipping”)并将其附加到适当的 URL,然后 JSON.parse 将相关数据附加到适当的文本字段“地址”中。我需要使用此解析的结果动态填充另一个输入行,但 URLFetch 仅在 code.gs 端可用。有没有办法将数组从 gs 端传递到我的 javascript 端,或者我最好的选择是 XMLHttpRequest 函数?

我试过js端的url fetch,还有一个新函数“httpGet”

URLFetch 函数:

document.getElementById('lookup').addEventListener('click',patientLookup);
 function personLookup(){
 var patient = document.getElementById('id').value;
 var shippingStyle = document.getElementById('shipping').value;
 var address = document.getElementById('address');

 var url = "someurl?patientID=" + patient;
 var shippingAddress = UrlFetchApp.fetch(url,{'muteHttpExceptions':true});
 Console.log(shippingAddress)     
 var addressData = JSON.parse(shippingAddress.getContentText());
 var shipAdd = addressData.Address;

 var city = addressData.City;

 var state = addressData.State;

 var zip = addressData.Zip;

 address.value = shipAdd + "," + city + "," + state + "," + zip;



 };

HttpGet函数:

  function httpGet(theUrl)
 {
     var xmlHttp = new XMLHttpRequest();
     xmlHttp.open( "GET", theUrl, false ); // false for synchronous 
     request
     xmlHttp.send( null );
     return xmlHttp.responseText;
 } 

很明显,URLFetch 仅在 gs 端支持,然后 httpGet 函数无法按我的需要工作,我对这样的函数也不像我对 fetch 函数那样熟悉。

【问题讨论】:

  • 有一个现代的Fetch API
  • 看看UrlFetchApp,它将帮助您更好地管理DOM。此外,this documentation 可以帮助补充乔纳森的回答。

标签: javascript json google-apps-script xml-parsing


【解决方案1】:

您需要在 GS 端编写函数,然后通过 google.script.run.googleScriptFunction(id,shipping) 将变量传递给它,其中 id 和 shipping 是您要传递给 google 脚本函数的值。

您可能会发现这个documentation 很有帮助

【讨论】:

    猜你喜欢
    • 2013-03-26
    • 2015-01-18
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 2017-09-02
    • 2018-01-26
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多