---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# AJAX

# AJAX {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 5 min. de leitura

AJAX (JavaScript e XML assíncronos) é um grupo de técnicas de desenvolvimento inter-relacionadas do lado do cliente usadas para criar aplicações Web assíncronas.

O AJAX permite que aplicações da Web enviem e recuperem informações de e para um servidor em segundo plano, sem afetar a experiência do usuário com a página da Web exibida.

## GlideAjax {#ariaid-title2}

A classe GlideAjax permite a execução de código do lado do servidor do cliente. As chamadasGlideAjax passam parâmetros para as inclusões de script e, usando convenções de nomenclatura, permite o uso desses parâmetros.
Nota:  
Esta funcionalidade requer conhecimento de JavaScript. Usando GlideAjax:

* Inicialize o GlideAjax com o nome da inclusão de script que você deseja usar.
* Ao criar a inclusão de script, você deve definir o campo de nome para ser exatamente igual ao nome da classe.
* Ao criar a inclusão de script, você deve marcar a caixa de seleção Cliente chamável.
* Especifique o parâmetro sysparm_name. O GlideAjax usa sysparm_name para descobrir qual função usar.
* Quaisquer parâmetros extras podem ser passados, e todos devem começar com sysparm_. Evite usar nomes de parâmetro predefinidos:
  * sysparm_name
  * sysparm_function
  * sysparm_value
  * sysparm_type
* O código é executado com as funções getXML() ou getXMLWait().

Para obter informações adicionais, consulte a API [GlideAjax](https://servicenow-prod.fluidtopics.net/tp~GX8f0bMgLiewtSZeAJA#c_GlideAjaxAPI "A classe GlideAjax permite que um client script chame o código do lado do servidor em uma inclusão de script.").

## Exemplos de GlideAjax assíncrono {#ariaid-title3}

Existem duas partes no script GlideAjax assíncrono: código do lado do cliente e código do lado do servidor.

### Hello World: retornando um valor do servidor

### Lado do cliente

Este código é executado no cliente (o navegador da web). Crie um client script normalmente. Isso envia os parâmetros para o servidor, que faz o processamento. Para que o cliente não espere pelo resultado, uma função de retorno de chamada é usada para retornar o resultado, passado para a função getXML(). (Neste caso, é chamado de `Hello WorldParse`.)  
A função getXMLWait() não precisa de uma função de retorno de chamada separada, mas isso bloqueará o cliente. Se a comunicação cliente-servidor demorar muito (por exemplo, em redes lentas), a aplicação parecerá lenta e sem resposta. Um exemplo de getXMLWait() está na seção a seguir.

    var ga = new GlideAjax('HelloWorld');
    ga.addParam('sysparm_name', 'helloWorld');
    ga.addParam('sysparm_user_name', "Bob");
    ga.getXML(HelloWorldParse);
     
    function HelloWorldParse(response) {
      var answer = response.responseXML.documentElement.getAttribute("answer");
      alert(answer); }

### Lado do servidor

O código do lado do servidor para a função acima. Não crie uma regra de negócio, mas navegue até Definição do sistema \> Inclusão de script e crie um novo script. Cole o código abaixo.  
Nota:  
Você deve definir o nome da inclusão de script como `Hello World`.

* O código sys_script_include deve estender a classe ResumoAjaxProcessor e ser chamável pelo cliente.
* Nomes de função que começam com "_" são considerados privados e não podem ser chamados pelo cliente.
* Evite substituir métodos de AbstratAjaxProcessor, incluindo `initialize`. Embora seja possível invocar métodos do objeto de superclasse que você substituiu, isso é complicado e é melhor evitá-lo.

{#r_ExamplesOfAsynchronousGlideAjax__ul_kyn_c3y_n4}

    var HelloWorld = Class.create();
    HelloWorld.prototype = Object.extendsObject(AbstractAjaxProcessor, {
       helloWorld:function() { return "Hello " + this.getParameter('sysparm_user_name') + "!"; } ,
       _privateFunction: function() { // this function is not client callable     
        }
     });

Isso resulta em uma caixa de alerta que diz "Olá, Bob!" ao visitar o formulário.

### Retornando vários valores

Como a resposta é um documento XML, não estamos limitados a retornar um único valor de `resposta`. Aqui está um exemplo mais complexo que retorna vários nós e atributos XML.  

### Inclusão de script do processador AJAX

    /*
     * MyFavoritesAjax script include Description - sample AJAX processor returning multiple value pairs
     */ 
    var MyFavoritesAjax = Class.create();
    MyFavoritesAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
     
    	 /*
    	 * method available to client scripts call using:
    	 * var gajax = new GlideAjax("MyFavoritesAjax");
    	 * gajax.addParam("sysparm_name","getFavorites");
    	 */
    	getFavorites: function() { // build new response xml element for result
             var result = this.newItem("result");
    	  result.setAttribute("message","returning all favorites");
     
    	  //add some favorite nodes with name and value attributes 
             this._addFavorite("color","blue");
             this._addFavorite("beer","lager");
             this._addFavorite("pet","dog");
           },
    	 // all items are returned to the client through the inherited methods of AbstractAjaxProcessor
    	 _addFavorite: function(name, value) { 
              var favs = this.newItem("favorite");
    	   favs.setAttribute("name",name);
    	   favs.setAttribute("value",value); },
     
    	type:"MyFavoritesAjax"
     
     });

### Script de cliente

    // new GlideAjax object referencing name of AJAX script include 
    var ga = new GlideAjax("MyFavoritesAjax"); 
    // add name parameter to define which function we want to call 
    // method name in script include will be getFavorites
    ga.addParam("sysparm_name","getFavorites");
     
    // submit request to server, call ajaxResponse function with server response
     
    ga.getXML(ajaxResponse);
     
    function ajaxResponse(serverResponse) { 
      // get result element and attributes
      var result = serverResponse.responseXML.getElementsByTagName("result");
      var message = result[0].getAttribute("message");
     
      //check for message attribute and alert user
      if(message) alert(message);
     
      //build output to display on client for testing 
      var output = "";
     
      // get favorite elements 
      var favorites = serverResponse.responseXML.getElementsByTagName("favorite");
      for(var i = 0; i < favorites.length; i ++) { 
        var name = favorites[i].getAttribute("name");
        var value = favorites[i].getAttribute("value");
        output += name + " = " + value + "\n "; }
     
      alert(output); }

### Resposta XML

    <xml sysparm_max= "15" sysparm_name="getFavorites" sysparm_processor="MyFavoritesAjax">
      <result message = "returning all favorites"></result>
      <favorite name = "color" value = "blue"></favorite>
      <favorite name = "beer" value = "lager"></favorite>
      <favorite name = "pet" value = "dog"></favorite>
    </xml>

## Exemplos de GlideAjax síncrono {#ariaid-title4}

Use síncrono quando o script não puder continuar sem a resposta GlideAjax. Isso interrompe a sessão até que a resposta seja recebida.
Se o seu caso de uso exigir que nenhum processamento adicional possa ocorrer até que a resposta GlideAjax seja recebida, você pode usar getXMLWait(). No entanto, como isso tornará seu código mais lento e bloqueará a sessão do usuário até que a resposta seja recebida, geralmente é recomendável usar getXML() com uma função de retorno de chamada.  
Nota:  
Não use AJAXEvaluateSincronamente.

O método getXMLWait() não está disponível em aplicações com escopo.

Este código resulta em um alerta do lado do cliente que exibe O servidor diz Olá, bob!.  
O código do cliente.

    var ga = new GlideAjax('HelloWorld') ;
    ga.addParam('sysparm_name','helloWorld');
    ga.addParam('sysparm_user_name',"Bob");
    ga.getXMLWait(); 
    alert(ga.getAnswer());

O código de inclusão de script do lado do servidor.

    var HelloWorld = Class.create();
    HelloWorld.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    helloWorld: function() 
     { return "The Server Says Hello " + this.getParameter('sysparm_user_name') + "!"; } } );

## AJAXClientHelper {#ariaid-title5}

Fornece funções de ajuda para que os clientes Ajax recuperem um valor de um cliente Ajax.

### Onde usar

Use esta inclusão de script sempre que precisar recuperar um valor de um cliente Ajax.

### Resumo do método

{#r_AJAXClientHelper__table_vlr_jzn_jbb__entry__2}

| Resumo do método | Descrição |
|-|-|
| getDisplay() | Obtém o valor de exibição da lista de seleção. |
[ ]

{#r_AJAXClientHelper__table_vlr_jzn_jbb}

### Detalhe do método

{#r_AJAXClientHelper__table_gpm_myn_jbb__entry__4}

| Método de API | Descrição | Parâmetros de entrada | A saída retorna |
|-|-|-|-|
| getDisplay() | Obtém o valor de exibição da lista de seleção. | nenhum | O valor de exibição. |
[ ]

{#r_AJAXClientHelper__table_gpm_myn_jbb}  

### Curva {#r_AJAXClientHelper__id_ebx_5zp_mwb}

    // getDisplay
    (function(table, sysId) {
        var ga = new GlideAjax('AjaxClientHelper');
        ga.addParam("sysparm_name", "getDisplay");
        ga.addParam('sysparm_table', 'incident');
        ga.addParam('sysparm_value', "0598b22b877313003c1c8467a7cb0b71");
        ga.getXMLWait();
        return ga.getAnswer();
    }("incident", "0598b22b877313003c1c8467a7cb0b71")); // Returns 'INC0010001'


