Search code examples
javascripthtmlsoapundefined-function

soapRequest is not defined


When I click on the button I get a soapRequest is not defined error.

How can I fix this error?

My code:

<head>
  <script type="text/javascript">
    var soapRequest = function () {
        var str = //the soap request code

          function createCORSRequest(method, url) {
            var xhr = new XMLHttpRequest();
            if ("withCredentials" in xhr) {
              xhr.open(method, url, false);
            } else if (typeof XDomainRequest != "undefined") {
              alert xhr = new XDomainRequest();
              xhr.open(method, url);
            } else {
              console.log("CORS not supported");
              alert("CORS not supported");
              xhr = null;
            }
            return xhr;
          } //end of function createCORSRequest//

        //calling the xhr 
        var xhr = createCORSRequest("POST",
          "https://thelocalserver/therequest?wsdl");

        if (!xhr) {
          console.log("XHR issue");
          return;
        }
        xhr.onload = function () {
            var results = xhr.responseText;
            console.log(results);
          } //end of function onload

        xhr.setRequestHeader('Content-Type', 'text/xml');
        xhr.send(str);
      } //end of function soapRequest//

  </script>
</head>

<body>
  <form name="Demo" action="" method="post">
    <div>
      <input type="button" id="API" value="Soap" onClick="soapRequest" />
    </div>
  </form>
</body>
<html>

Solution

  • Try the following:

    Javascript:

    var soapRequest = function (){
        //the soap request code
        var createCORSRequest = function (method, url) { 
            var xhr = new XMLHttpRequest();
            if ("withCredentials" in xhr)  { 
                xhr.open(method, url, false); 
            } else if (typeof XDomainRequest != "undefined") { 
                var xhr = new XDomainRequest(); 
                xhr.open(method, url); 
            } else {
                console.log("CORS not supported"); 
                alert("CORS not supported"); 
                xhr = null; 
            } 
            return xhr; 
        }//end of function createCORSRequest//
    
        //calling the xhr 
        var xhr = createCORSRequest("POST", "https://thelocalserver/therequest?wsdl");
    
        if (!xhr){ 
            console.log("XHR issue"); 
            return; 
        } 
    
        xhr.onload = function (){
            var results = xhr.responseText; 
            console.log(results); 
        }//end of function onload
    
        xhr.setRequestHeader('Content-Type', 'text/xml'); 
        xhr.send(str);
    }//end of function soapRequest//
    

    HTML:

    <form name="Demo" action="" method="post">
        <div>
            <input type="button" id="API" value="Soap" onClick="soapRequest()" />
        </div>
    </form>