CORS ORIGIN ERROR: Consumer an Soap services from xmlHttpRequest

Primary tabs

SOAP, Caché

Hi, 

call my web service (%SOAP from caché 2012 v) from XmlHttpRequest client generate  cors policy error, 

Any one help me how i can allow origin in headers requeste.

Thank you.

 

 

 

 

Replies

not work, 

I can use this in %Soap.WebService ? bellow my request from frontend client

=============================================================

function soapRequest(){
        var soapMessage = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:abon="http://namespace">'+
                            ' <soapenv:Header/>'+
                                   '<soapenv:Body>'+
                                      '<abon:ActivationContrat>'+
                                         '<abon:PUBLISH>'+
                                            '<abon:HEADER>'+
                                               '<abon:SENDER_ID>?</abon:SENDER_ID>'+
                                               '<abon:RECEIVER_ID>?</abon:RECEIVER_ID>'+
                                               '<abon:COMPANY>?</abon:COMPANY>'+
                                               '<abon:COUNTRY>?</abon:COUNTRY>'+
                                               '<abon:DATE>?</abon:DATE>'+
                                              ' <abon:MESSAGE_TYPE>?</abon:MESSAGE_TYPE>'+
                                           '</abon:HEADER>'+
                                           '<abon:CONTENT>'+
                                               <!--Zero or more repetitions:-->
                                               '<abon:CONTRAT>'+
                                                  '<abon:STORE>?</abon:STORE>'+
                                                  '<abon:CASH_DATE>?</abon:CASH_DATE>'+
                                                  '<abon:CASH_BOX>?</abon:CASH_BOX>'+
                                                  '<abon:CASH_TICKET>?</abon:CASH_TICKET>'+
                                                  '<abon:CASH_AMOUNT>?</abon:CASH_AMOUNT>'+
                                                  '<abon:EAN>fromtest</abon:EAN>'+
                                                  '<abon:ACTIVATION_CODE>3058030416</abon:ACTIVATION_CODE>'+
                                               '</abon:CONTRAT>'+
                                            '</abon:CONTENT>'+
                                         '</abon:PUBLISH>'+
                                      '</abon:ActivationContrat>'+
                                   '</soapenv:Body>'+
                                '</soapenv:Envelope>';
                                
            function createSoapRequest(method,url){
                var xhr = new XMLHttpRequest();
                if ("withCredentials" in xhr){
                    console.log("with crediential ok");
                    xhr.open(method,url,false);
                    console.log("opend");
                }/*else if (typeof XDomainRequest != "undefined"){
                    console.log("xDomaineRequest ok");7
                    
                }
                else{
                    console.log("CORS not supportes");
                    xhr=null;
                }*/
                
                
                return xhr;
            }
            
            var xhr = createSoapRequest("POST","http://vmw-app-dev:57772/csp/vdbcen/API.MSP.AbonContract.cls?wsdl");
            if (!xhr){
                console.log("XHR iccue");
                return;
            }
            
            xhr.onload =  function(){
                var result = xhr.responseText;
                console.log(result);
            }
            
            xhr.setRequestHeader("Content-Type","text/xml");
            xhr.send(soapMessage);

========================================================

Set above instructions in your server cache web service, not in the client.

yes, i added it in my web service.

/// HANDLED CORS POLICY
Parameter HandleCorsRequest = 1;

Thank you agin for your help :)

this solution will be worked on Rest service, 

Can you expose your service as a REST?

Client-side JS is really not suited to working with web services.


@YURI MARX GOMES solution (HandleCorsRequest) would work for REST.

i can't make my service as REST in caché v 2012. do you have an idea how i can do it ?

Thank you for your replay.