HTTP GET-anmodning i JavaScript?

Jeg skal lave en HTTP GET-anmodning i JavaScript. Hvad er den bedste måde at gøre det på?

Jeg skal gøre dette i en Mac OS X dashcode widget.

Her er kode til at gøre det direkte med JavaScript. Men som tidligere nævnt er det meget bedre at bruge et JavaScript-bibliotek. Min favorit er jQuery.

I nedenstående tilfælde bliver en ASPX-side (der fungerer som en fattigmands REST-tjeneste) kaldt for at returnere et JavaScript JSON-objekt.

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;
        }                    
    }
}
Kommentarer (2)

Prototype gør det meget enkelt

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

Ajax

Det ville være bedst at bruge et bibliotek som Prototype eller jQuery.

Kommentarer (0)