【发布时间】: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 函数那样熟悉。
【问题讨论】:
-
有一个现代的
FetchAPI -
看看UrlFetchApp,它将帮助您更好地管理DOM。此外,this documentation 可以帮助补充乔纳森的回答。
标签: javascript json google-apps-script xml-parsing