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.
Frågan#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?
