簡體   English   中英

GlideAjax 請求不返回任何響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM