Acceso Cruzado de Dominio con Proxy PHP

Estoy accediendo a un servicio web XML (.net) a través de jQuery y debido a restricciones de acceso de dominio cruzado, estaba restringido. Estaba usando el proxy PHP simple y llamando al servicio web. Ser un novato webdev es realmente un dolor de cabeza.

Estoy recibiendo una respuesta divertida como a continuación.

{"status":{"http_code":500},"contents":"soap:ReceiverServer was unable to process request. ---> Root element is missing."} 

Este es mi JavaScript

 var proxy = 'proxy.php'; //http://crm.eyepax.net/contact.asmx?op=LogIn //variables for Add Contacts var addAccountServiceUrl = proxy+'?url='+serviceURL'; // Preferably write this out from server side var OrganizationID=123; var ParentID=123 ; var AccountManagerID="123"; var OrganizationName="Testapple"; var IncorporationNo="23"; var PostAddress="asdfklj asldfj"; var CountryID="LK"; var VisitAddress="asldkf asldkf asldfas dfasdf"; var VisitCountryID="LK"; var VisitSwithboard="242344"; var VisitFax="234234"; var Www="http://www.eyepax.com"; var Active=true; var RegBy=345345345345; var ConfigurationCode="28BC9CC3@BFEBFBFF0001067A"; var Flag=1; var LicenceOrganazationID=1; var sErr; var userName="test123"; var password="Eyepax321"; var flag="2"; function addContact() { //this is to be commented soon! //alert("function called"); //update the webservice soapmesg var soapMessage = ' \  \  \ '+userName+' \ '+password+' \ '+ConfigurationCode+' \ '+flag+' \  \  \ '; $.ajax({ beforeSend: function(jqXHR, settings) { //var xhr = new CrossXHR(); //jqXHR = xhr; }, url: addAccountServiceUrl, type: "POST", dataType: "xml", data: soapMessage, crossDomain: true, success: endAddAccount, error: function(jqXHR, textStatus, errorThrown) { alert("failure"); console.log(textStatus); console.log(errorThrown);}, contentType: "text/xml; charset=\"utf-8\"" }); return false; } function endAddAccount(xmlHttpRequest, status) { console.log(xmlHttpRequest); console.log(status); alert("webservice called!"); $(xmlHttpRequest.responseXML) .find('WriteOrgResponse') .each(function() { var orgres = $(this).find('WriteOrgResult').text(); var error = $(this).find('vstrError').text(); alert(orgres +' -'+ error); }); var a = $(xmlHttpRequest.responseXML).find('WriteOrgResult'); var b = $(xmlHttpRequest.responseXML).find('vstrError'); console.log("a"+a.text()); console.log("b"+b.text()); } //function for field validation $("#add_account_page").live('pageinit', function(event) { //alert("Add Test"); var account_name_val; $("#submit").click(function(){ account_name_val = $("#account_name").val(); // this function is used to see whether mandatory field Account Name is available if(account_name_val==""){ alert("Please fill Account Name"); $("#account_name").focus(); } else{ //calling webservice addContact(); } }); }); 

Fuente proxy de PHP

Pude enviar el pedido a través de un proxy PHP y obtener el resultado.