problem with null parameters passed from XMLHTTP in javascript to C# Webservice with SOAP
am 24.08.2007 11:15:47 von mbaskeyHello, I have encountered some strange behaviour when using the
XMLHTTP Request object in Javascript to return xml from a C#
Webservice Method. I create a SOAP envelope and send it off to the
Webservice, which I have debug points in, which when hit I can see
that all the parameters are coming thru as null. I can't figure out
why this is, any experts out there would be a great help.
Here is my Javascript:
function showMsga()
{
if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e) {
req = false;
}
}
}
else if(window.XmlHttpRequest) {
try {
req = new XmlHttpRequest();
}
catch(e) {
req = false;
}
}
var wer = window.location;
if(req) {
var strEnvelope = "
\n"+ "
" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" + " xmlns:soap=
\"http://schemas.xmlsoap.org/soap/envelope/\">\n" +
"
"
"
"
"
req.onreadystatechange = GetMessage;
req.open("POST","http://"+window.location.hostname+"/MyServi ce/
Service.asmx",true);
req.setrequestheader("Content-type", "text/xml");
req.setRequestHeader("SOAPAction","https://freedom.org/MyMet hod");
req.send(strEnvelope);
}
}
here is the C# for the WebService method
[WebMethod]
public string MyMethod(string tpid, string poid)
{
int userID = Users2.GetUserID();
DataProvider dp = DataProvider.Instance();
if(Convert.ToInt32(poid)>0)
{
return dp.GetPostDetail(Convert.ToInt32(poid), userID);
}
else
{
return dp.GetTopicDetail(Convert.ToInt32(tpid), userID);
}
}
originally the method took integers but I switched them to strings in
the hope they would work,
any and all comments and hints are greatly appreciated.
Thanks,
Matt