JS 웹 서비스의 공통 함수 호출

6593 단어 webservice
var xmlhttp;

var value = new Array();

var variable = new Array();



//Show Response MSG.

function handleStateChange() {

    var h = document.getElementById( "Label1" );

    if ( xmlhttp.readyState == 4 ) {

        if ( xmlhttp.status == 200 ) {

            alert( xmlhttp.responseText );

            h.innerHTML = xmlhttp.responseText;

            //h.innerHTML=xmlhttp.responseXML;

        }

        else if ( xmlhttp.status == 404 ) {

            h.innerHTML = "<br> !";

        }

    }

    else if ( xmlhttp.readyState == 0 ) {

        h.innerHTML = "<br> !";

    }

    else if ( xmlhttp.readyState == 1 ) {

        h.innerHTML = "<br> ……!";

    }

    else if ( xmlhttp.readyState == 2 ) {

        h.innerHTML = "<br> !";

    }

    else if ( xmlhttp.readyState == 3 ) {

        h.innerHTML = "<br> ";

    }

    else {

        h.innerHTML = xmlhttp.responseXML;

    }



}



//Get Request Data's length

function getlen( str ) {

    var bytesCount = 0;

    for ( var i = 0; i < str.length; i++ ) {

        var c = str.charAt( i );

        if ( /^[\u0000-\u00ff]$/.test( c ) )   // 

        {

            bytesCount += 1;

        }

        else {

            bytesCount += 2;

        }

    }

    return bytesCount;



}





//Create XMLHttpRequest Object

function createXMLHttpRequest() {



    if ( window.ActiveXObject ) {

        xmlhttp = new ActiveXObject( "Microsoft.XMLHTTP" );

    }

    else if ( window.XMLHttpRequst ) {

        xmlhttp = new XMLHttpRequest();

    }

}



//send Request By HTTP POST



function RequestByPost( method, variable, value, url, _Namespace ) {

    createXMLHttpRequest();

    var data;

    data = '<?xml version="1.0" encoding="utf-8"?>';

    data = data + '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">';

    data = data + '<soap:Body>';

    data = data + '<' + method + ' xmlns="' + _Namespace + '">';

    for ( var i = 0; i < variable.length; i++ ) {

        data = data + '<' + variable[i] + '>' + value[i] + '</' + variable[i] + '>';



    }

    data = data + '</' + method + '>';

    data = data + '</soap:Body>';

    data = data + '</soap:Envelope>';



    xmlhttp.onreadystatechange = handleStateChange;

    xmlhttp.Open( "POST", url, true );

    xmlhttp.SetRequestHeader( "Content-Type", "text/xml; charset=utf-8" );

    xmlhttp.SetRequestHeader( "Content-Length", getlen( data ) );

    xmlhttp.SetRequestHeader( "SOAPAction", _Namespace + method );

    xmlhttp.Send( data );

    alert( data );

}





//CallHelloWorld!

function SayHello_onclick() {

    //alert(document.getElementById('YourName').value);

    RequestByPost( "HelloWorld", new Array( "msg" ), new Array( document.getElementById( 'YourName' ).value ), "WebService.asmx", "localhost/" );

}

//WeatherReport Test:

function Button2_onclick() {

    RequestByPost( "getWeatherbyCityName", new Array( "theCityName" ), new Array( document.getElementById( 'CityName' ).value ), "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx", "http://WebXml.com.cn/" );

}

좋은 웹페이지 즐겨찾기