Nexus 4D Web Services Server EsempioJavascript



Esempio Javascript

Ecco come inserire chiamate a webservices in pagine HTML usando Javascript:

  1. Scaricare il descrittore dei servizi http://www.nexusonline.it:8088/4DWSDL e ricavare i nomi dei parametri di ingresso e di uscita della funzione desiderata.
  2. Preparare i parametri per la chiamata XMLHttpRequest.
  3. Creare una XMLHttpRequest con i parametri richiesti Vedi esempio
  4. Parserizzare il risultato per la visualizzazione nella pagina corrente.

Ecco lo scheletro di una XMLHttpRequest:

var req;
  ´srv è l'oggetto con i parametri per la chiamata
function loadXMLDoc(srv) {
 req = false;
  ´distinguiamo explorer dagli altri browser
 if(window.XMLHttpRequest) {
  try {req = new XMLHttpRequest();} catch(e) {req = false;}}
   else if(window.ActiveXObject) {
  try {req = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e) {
    try {req = new ActiveXObject("Microsoft.XMLHTTP");
     }catch(e) {req = false;}
    }
   }
if (req) {

  ´inpostiamo la funzione da chiamare per parserizzare i dati
 req.onreadystatechange = function(){processReqChange(srv.callback);}
  ´il terzo parametro a true indica la modalità asincrona
 req.open("POST", srv.url, true);
  ´notifichiamo che i dati sono in xml
 req.setRequestHeader("Content-Type", "text/xml");
  ´inseriamo l'action nell'header della chiamata http
 req.setRequestHeader("Soapaction", srv.soapact);
  ´passiamo i dati per l'authorization, se mancanti il sito nexus chiede l'inserimento dell'indirizzo email come user
 req.setRequestHeader("Authorization", srv.auth);
 req.send(srv.post);}
}

function processReqChange(callback) {
if (req.readyState == 4) {

  ´a risposta completa passiamo il risultato xml al parser specificato
  ´if (req.status == 200) callback(req.responseXML);
  ´else alert("Problemi nel recupero dei dati XML:\n" + req.statusText);}
}



Esempio di parser del metodo Get_MyIpAddress

  ´il parser: nel nostro caso i servizi chiamati mostrano il risultato in div distinti
res_obj(activediv).innerText=getxmlByName(xml,"ip_address").firstChild.data;}
  ´ le funzuioni di appoggio
function res_obj(divID){return findChildByName(document.getElementById(divID),"risultato");}
function getxmlByName(xml,n){return xml.getElementsByTagName(n)[0];}
  ´e l'HTML
<div id="d0" class="para"><p">Il tuo IP è:<h3 name=risultato"></h3"></div">

Per provare il tutto sulla vostra macchina trovate lo script qui e una pagina HTML demo qui.
Attenzione: non sono attive online, ma solo se scaricate sul vostro computer.

Sito on line realizzato da Nexus srl - Milano - Per problemi o info scrivi a Amministratore - Pagine Servite 4511120