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>brian.mcfadden@recruiters.ie</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:brian.mcfadden@recruiters.ie">brian.mcfadden@recruiters.ie</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>

  
4

3 回答 3

6

XmlHttpRequest can only be used to call services local to the domain/server from where the page is being served.

Thus, if you're serving a page from:

http://www.example.com/page1

You cannot make an XmlHttpRequest to:

http://www.sample.com/webservice
于 2008-12-10T07:01:56.047 回答
0

由于您正在设置Content-type,因此您还需要将其设置为使用UTF-8。我认为它应该是application/xml来源)。

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

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

于 2008-12-10T07:37:04.477 回答