Demande GET HTTP en JavaScript ?

Je dois effectuer une requête [HTTP GET][1] en JavaScript. Quelle est la meilleure façon de le faire ?

J'ai besoin de faire cela dans un widget dashcode Mac OS X.

[1] : http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods

Voici un code pour le faire directement avec JavaScript. Mais, comme indiqué précédemment, il est préférable d'utiliser une bibliothèque JavaScript. Ma préférée est jQuery.

Dans le cas ci-dessous, une page ASPX (qui sert de service REST pour les pauvres) est appelée pour renvoyer un objet JavaScript JSON.

var xmlHttp = null;

function GetCustomerInfo()
{
    var CustomerNumber = document.getElementById( "TextBoxCustomerNumber" ).value;
    var Url = "GetCustomerInfoAsJson.aspx?number=" + CustomerNumber;

    xmlHttp = new XMLHttpRequest(); 
    xmlHttp.onreadystatechange = ProcessRequest;
    xmlHttp.open( "GET", Url, true );
    xmlHttp.send( null );
}

function ProcessRequest() 
{
    if ( xmlHttp.readyState == 4 && xmlHttp.status == 200 ) 
    {
        if ( xmlHttp.responseText == "Not found" ) 
        {
            document.getElementById( "TextBoxCustomerName"    ).value = "Not found";
            document.getElementById( "TextBoxCustomerAddress" ).value = "";
        }
        else
        {
            var info = eval ( "(" + xmlHttp.responseText + ")" );

            // No parsing necessary with JSON!        
            document.getElementById( "TextBoxCustomerName"    ).value = info.jsonData[ 0 ].cmname;
            document.getElementById( "TextBoxCustomerAddress" ).value = info.jsonData[ 0 ].cmaddr1;
        }                    
    }
}
Commentaires (2)

Le [Prototype] (http://www.prototypejs.org) rend les choses très simples.

new Ajax.Request( '/myurl', {
  method:  'get',
  parameters:  { 'param1': 'value1'},
  onSuccess:  function(response){
    alert(response.responseText);
  },
  onFailure:  function(){
    alert('ERROR');
  }
});
Commentaires (2)

[Ajax] [1]

Il est préférable d'utiliser une bibliothèque telle que [Prototype][2] ou [jQuery][3].

[1] : http://en.wikipedia.org/wiki/Ajax_%28programming%29 [2] : http://en.wikipedia.org/wiki/Prototype_JavaScript_Framework [3] : http://en.wikipedia.org/wiki/JQuery

Commentaires (0)