我正在尝试处理从服务器端返回的json响应。为此我设置了Callback函数,该函数将在服务器端成功响应时执行,并通过接受服务器响应作为参数进一步处理,但是它不起作用。
这是我的HTML代码:
<form id="EditorsForm">
UserName:<br>
<input type="text" name="uname" id="uname">
<br> Password:
<br>
<input type="password" name="password" id="password">
<br><br>
<input type="button" value="Submit" onclick="google.script.run.withSuccessHandler(onSuccess).verifyUser(this.form)">
</form>
这是我的回调功能
function onSuccess(response) {
alert(response);
}
这是我的app脚本,它返回成功的json响应。
function verifyUser(EditorsForm) {
var uname = EditorsForm.uname;
var password = EditorsForm.password;
login_api = "http://api.abcbrain.in/operations/login.php?userName=" + uname + "&password=" + password + "&referrer=ePlugin";
var resp = UrlFetchApp.fetch(login_api);
var json = resp.getContentText();
var data = JSON.parse(json);
return data;
}
答案 0 :(得分:1)
我刚刚在verifyUser()函数中用硬编码的JSON测试了你的代码,如下所示,
function verifyUser(EditorsForm){
var uname=EditorsForm.uname;
var password=EditorsForm.password;
/*login_api="http://api.smsbrain.in/operations/login.php?userName="+uname+"&password="+convertSign(password)+"&referrer=excelPlugin";
"http://api.smsbrain.in/1.2/appsms/brandStatus.php?user="+uname+"& passwd="+password+"&senderId="+sid+"";
var resp=UrlFetchApp.fetch(login_api); */
var json = '{"resp1":"test"}';//resp.getContentText();
var data = JSON.parse(json);
Logger.log(data)
return data;
}
它给了我正确的结果
我认为问题出在UrlFetchApp上,它必须抛出异常。你可以使用&#34;试试catch&#34;确保它不会抛出任何异常。