2008-12-10 293 views
1
 
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Calling a Web Service Using XmlHttpRequest</title> 

    <script type="text/javascript" language="javascript"> 

var xmlhttp; 


var XMLContent='<XML ID="Transaction"><Transaction>'+ 
'<LoginDetails>'+ 
'<Email>artur</Email>'+ 
'<Password>demos2</Password>'+ 
'</LoginDetails>'+ 
'<JobDetails>'+ 
'<JobId>40170978</JobId>'+ 
'<JobRefNo>prod84</JobRefNo>'+ 
'<JobTitle>'+ 
'<![CDATA[ Director of R&D Software product (Multimedia)]]>'+ 
'</JobTitle>'+ 
'<JobExpiry>30</JobExpiry>'+ 
'<JobContactName>'+ 
'<![CDATA[ Brian Mc Fadden]]>'+ 
'</JobContactName>'+ 
'<JobContactEmail>[email protected]</JobContactEmail>'+ 
'<JobShortDesc>'+ 
'<![CDATA[ Director of R&D Software product concepts Multimedia Web 2.0]]> '+ 
'</JobShortDesc>'+ 
'<JobDetDesc><![CDATA[ <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><STRONG>Director of R&D Software product concepts to</STRONG>  build a the new prototyping team and processes from the ground up, utilizing an agile development model, manage the R&D team develop a strong vision and be able to clearly articulate the direction the group will take in terms of methodologies and tools in technologies such as J2EE, .NET, Flash, AJAX, DHTML, JavaScript, take marketing requirements from the principal investigators and write functional requirement documents, manage budget for R&D development,  manage the projects developed by the internal team and vendors. </P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">To get this new role you will have a degree in IT/Software and over 5 years plus doing cutting edge development in R&D/ prototyping and leading cutting edge development teams in a software production/product environment, project management and process management skills (AGILE) and demonstrated experience working on product innovation and releases. You may be working in educational gaming, social networking, Web 2.0 applications, mobile technologies, learning management systems, online courseware or shareware. </P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> </P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">The package is to €105K + Bonus + VHI + Pension + relocation package where applicable + stock options may be negotiated. There are great career advancement opportunities. To discuss this and other opportunities please send an up-to-date resume to <A href="mailto:[email protected]">[email protected]</A> or call +353 1 6489113 in confidence. Your details will not be sent to any third party without your consent. </P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> </P>]]>'+ 
'</JobDetDesc>'+ 
'<JobSalary>90000</JobSalary>'+ 
'<JobSalaryMax>105000</JobSalaryMax>'+ 
'<JobQues1><![CDATA[ ]]>'+ 
'</JobQues1>'+ 
'<JobQues2><![CDATA[ ]]>'+ 
'</JobQues2>'+ 
'<JobQues3><![CDATA[ ]]>'+ 
'</JobQues3>'+ 
'<JobType>0|0</JobType>'+ 
'<JobAddnlBens>17,14,23,1,5,9,12,10</JobAddnlBens>'+ 
'<JobLocations>96,98,97</JobLocations>'+ 
'<JobEducations>8</JobEducations>'+ 
'<JobExperiences>10</JobExperiences>'+ 
'<JobCategories>1043,1050</JobCategories>'+ 
'<JobSubcategories>69896,69869</JobSubcategories>'+ 
'</JobDetails>'+ 
'</Transaction>'+ 
'</XML>'; 



function on_click() 

{ 

if(window.ActiveXObject) 
    { 
    try 
     { 
     xmlhttp = new ActiveXObject('Msxml2.XMLHTTP'); 

     } 
    catch (ex) 
    { 
     xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 

    } 
    } 
else if (window.XMLHttpRequest) 
{ 
    xmlhttp = new window.XMLHttpRequest(); 
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); 
} 

var xmlToSend = '<?xml version="1.0" encoding="utf-8"?>'+ 
'<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/">'+ 
'<soap:Body>'+ 
'<InsertXML xmlns="http://recpushdata.cyndigo.com/">'+ 
'<Jobs>'+XMLContent+'</Jobs>'+ 
'</InsertXML>'+ 
'</soap:Body>'+ 
'</soap:Envelope>'; 

var szUrl; 
szUrl = 'http://recpushdata.cyndigo.com/Jobs.asmx?op=InsertXML'; 

xmlhttp.onreadystatechange = state_Change; 

xmlhttp.open("Post", szUrl, true); 

xmlhttp.setRequestHeader ("SOAPAction", "http://recpushdata.cyndigo.com/InsertXML"); 

xmlhttp.setRequestHeader ("Content-Type", "text/xml"); 

xmlhttp.send(xmlToSend); 

} 



function state_Change() 

{ 

// if xmlhttp shows "loaded" 

if (xmlhttp.readyState==4) 

{ 

// if "OK" 

if (xmlhttp.status==200) 

{ 

alert("OK"+xmlhttp.responseText); 

} 

else 

{ 

alert("Problem retrieving XML data "+xmlhttp.responseText); 

} 

} 

} 

    </script> 

</head> 
<body> 
    <div> 
     <h1> 
      Click the button to call the web service</h1> 
     <input type="button" onclick="return on_click();" value="OK" /> 
    </div> 
    <div id="responseDiv"> 
    </div> 
</body> 
</html> 

 

回答

6

XmlHttpRequest只能用于从服务页面的域/服务器调用本地服务。

因此,如果你从服务页面:

http://www.example.com/page1 

你不能让一个XMLHttpRequest来:

http://www.sample.com/webservice 
0

既然你设置Content-type,你还需要将其设置为使用UTF-8。我认为它应该是application/xmlsource)。

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

否则,您是否验证过XML格式正确?尝试将其保存为完整的XML文件并在浏览器中打开它。

+0

我已经验证了XML文件,甚至响应快到正常,当我访问从我的本地文件系统如文件C:/CallWebService.html – user42070 2008-12-10 08:39:12