webForumDet fria alternativet

XMLHttpRequest och SOAP

1 svar · 780 visningar · startad av startail

startailMedlem sedan sep. 2000159 inlägg
#1

Hur fungerar egentligen SOAP och XMLHttpRequest i Javascript.

Jag försöker göra ett enkelt skript mot Västtrafiks SOAP server.

Här är vad jag försöker använda mig av.


Javascript....

function createXMLHTTPRequest2(async) 
{
        xmlhttp = new XMLHttpRequest();
      
        xmlhttp.open("POST","http://www.vasttrafik.se/External_Services/TravelPlanner.asmx", async);
        xmlhttp.setRequestHeader("Content-type", "soap/xml; charset=utf-8");
        return xmlhttp;
}

function createGetSMSCodesXMLRequest() {
    var request = '<?xml version="1.0" encoding="utf-8"?>'
    + '<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">'
    + '  <soap12:Body>'
    + '    <GetSMSCodes xmlns="http://vasttrafik.se/">'
    + '       <identifier>' + IDENTIFIER + '</identifier>'
    + '    </GetSMSCodes>'
    + '  </soap12:Body>'
    + '</soap12:Envelope>';
    
    return request;
}

function fetchResult(theString) {

        var xmlhttp = createXMLHTTPRequest2(true);
        var request = createGetSMSCodesXMLRequest();

        xmlhttp.send(request);
        xmlhttp.onreadystatechange=function() {
                alert(xmlhttp.readyState + ' - ' + xmlhttp.status);
        }
}

HTML ...

<input type="text" name="value" />
<button name="Sök" onclick="fetchResult($('input[name=value]').val())">Sök</button>

Det enda jag får tillbaka är
readyState: 2
status: 0
readyState: 4
status: 0

Det är något jag missat.

Jag har dessutom försökt använda mig av en vanlig GET, men får samma resultat. Då har jag följande kod


        url = "http://vasttrafik.se/External_Services/TravelPlanner.asmx/GetSMSCodes?identifier=" + IDENTIFIER + "";
        var xmlhttp = new XMLHttpRequest();
        
        xmlhttp.open("GET",url,true);
        xmlhttp.send(null);

Någon som kan vägleda mig lite, eller har en bra Javascript XMLHttpRequest sida som är förståelig?

ercizMedlem sedan maj 20011 880 inlägg
#2

Jag tror inte att du kan göra XMLHttpRequest() mot andra servrar än din egen av säkerhetsskäl, så kallad XSS, Cross Site Scripting. Men jag tror att det ska finnas sätt att gå runt det.

Genererad på 372 ms · cache AV · v20260730165559-full.f96bc7eb