[英]GlideAjax request doesn't return any response
我在 servicenow 開發中較新。 我嘗試創建一個包“腳本包含”-“客戶端腳本”。 我看到使用后台腳本,我的腳本包含工作正常。 但是當我嘗試通過客戶端腳本調用這個包含時,它不會返回任何響應。
這是我在 Script Include 中的方法:
usersCounter: function () {
var gr = new GlideRecord('sys_user');
gr.query();
var users = gr.getRowCount();
gs.info('Number of users'+ ' ' + users);
return users;
這是我的客戶端腳本:
var ga = new GlideAjax('SCI_Training_ScriptIncludeOnChange');
ga.addParam('sysparm_name', 'usersCounter');
ga.getXML(getUsers);
function getUsers(response) {
var numberOfUsers = response.responseXML.documentElement.getAttribute("answer");
g_form.clearValue('description');
console.log(numberOfUsers);
我的控制台中有 null 。
我錯過了什么?
無論為什么它不起作用,您可能都想將服務器端GlideRecord更改為使用GlideAggregate,然后讓mysql返回行數:
var gr = new GlideAggregate('sys_user');
gr.addAggregate('COUNT');
gr.query();
gr.next();
var users = gr.getAggregate('COUNT');
gs.info('Number of users'+ ' ' + users);
return users;
當您只需要結果集中元數據的行數時,使用不帶where子句的GlideRecord#query本質上就是在執行“ SELECT * FROM sys_user”,並帶走所有數據。
除此之外,請確保您的腳本包括適當延長AbstractAjaxProcessor
並具有client-callable
字段設置為true
每本: https://docs.servicenow.com/bundle/geneva-servicenow-platform/page/script/server_scripting/reference/ r_ExamplesOfAsynchronousGlideAjax.html
您可以嘗試調試您的getUsers()
方法。 嘗試檢查response
的對象結構是什么。
你也可以使用
var ga = new GlideAjax('SCI_Training_ScriptIncludeOnChange');
ga.addParam('sysparm_name', 'usersCounter');
ga.getXMLAnswer(getUsers);
function getUsers(response) {
var numberOfUsers = response;
g_form.clearValue('description');
console.log(numberOfUsers);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.