2008-12-10 294 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