ajax - example - Permiso denegado cuando se utiliza XMLHttpRequest.Open acceso de navegador cruzado
xmlhttprequest example (4)
Aquí hay un ejemplo bastante conciso
Intenta hacer tu URL http://recpushdata.cyndigo.com/Jobs.asmx/InsertXML
PD. Tu código no se puede leer en StackOverflow.
Estoy intentando acceder al método XMLHTTPRequest.open Incluso he incluido netscape.security.PrivilegeManager.enablePrivilege ("UniversalBrowserRead");
pero aún no está funcionando.
Estoy usando javascript y HTML para acceder al servicio web.
Cualquier ayuda sería realmente genial
Código
<html>
<Head>
<Title>Calling A WebService from HTML </Title>
</Head> <Body onload=''GetDataFrmWS()''>
<form name="Form1" id="Form1" runat="server" method="post">
<div id="DisplayData" > </div>
<div id="Menu2"></div> </form> <script language=''javascript''> var objHttp;
var objXmlDoc; function GetDataFrmWS()
{
alert(''I M Here'');
var func = getDataFromWS(); } function getDataFromWS()
{ if(window.ActiveXObject)
{
try
{
objHttp = new ActiveXObject(''Msxml2.XMLHTTP''); } else if (window.XMLHttpRequest) {objHttp = new window.XMLHttpRequest (); netscape.security.PrivilegeManager.enablePrivilege ("UniversalBrowserRead"); } strEnvelope = ''<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> ''+'' <HelloWorld xmlns = "http://tempuri.org/"> ''+'' <Dummy xsi : type = "xsd: string"> Hola </ Dummy> ''+'' </ HelloWorld> ''+'' </ soap: Body> ''+'' </ soap: Envelope> ''; var szUrl; szUrl = '' http: //kamadhenu/Quoteme/GetCategories.asmx? op = HelloWorld ''; objHttp.onreadystatechange = HandleResponse; objHttp.open (''POST'', szUrl, verdadero); objHttp.setRequestHeader (''Content-Type'', ''text / xml''); objHttp.setRequestHeader (''SOAPAction'', '' http://tempuri.org/HelloWorld ''); objHttp.send (strEnvelope); } function HandleResponse () { if (window.ActiveXObject) {objXmlDoc = new ActiveXObject ("Microsoft.XMLDOM"); objXmlDoc.async = "falso"; objXmlDoc.loadXML (objHttp.responseText); var nodeSelect = objXmlDoc.getElementsByTagName ("Menú1"). elemento (0); var Menu2 = objXmlDoc.getElementsByTagName ("Menú2"). elemento (0); document.getElementById (''DisplayData''). innerHTML = nodeSelect.text; } </ script> <input type = ''Button'' Text = ''Click Me'' onclick = ''GetDataFrmWS ()'' value = "¡Haga clic en mí!" /> ° </ Body> </ HTML>
}
catch (ex)
{
objHttp = new ActiveXObject(''Microsoft.XMLHTTP'');
}
if (objHttp.readyState == 4) {
document.getElementById (''Menu2''). innerHTML = Menu2.text; } else {var Text = objHttp.responseText; var parser = new DOMParser (); objXmlDoc = parser.parseFromString (Texto, ''texto / xml''); var Value = objXmlDoc.documentElement.childNodes [0] .childNodes [0] .childNodes [0] .childNodes [0] .childNodes [0] .childNodes [0] .childNodes [0] .nodeValue; var Menu2 = objXmlDoc.documentElement.childNodes [0] .childNodes [0] .childNodes [0] .childNodes [0] .childNodes [0] .childNodes [1] .childNodes [0] .nodeValue; var Menu3 = objXmlDoc.documentElement.childNodes [0] .childNodes [0] .childNodes [0] .childNodes [0] .childNodes [0] .childNodes [1] .childNodes [1] .nodeValue; document.getElementById (''DisplayData''). innerHTML = Value;
document.getElementById (''Menú2''). innerHTML = Menú2; document.getElementById (''Menú2''). innerHTML + = Menú3; }}
Por lo que sé, la solicitud XMLHTTP debe apuntar a una página en el mismo subdominio de la página html para los permisos de los diversos navegadores.
Un truco es hacer otra página en el mismo servidor en su idioma preferido y hacer que maneje la solicitud con la red del servidor.
Ejemplo:
desde su página HTML, realiza una solicitud de ajax a mydomain.com/externalrequest.php?url=www.google.com y esa página se conectará (fsock / cURL, etc.) a "url" y la devolverá
Si intentas cruzar dominios con XHR, puedes mirar el método JSONP. Verifique los documentos de JQuery para eso.
Le requerirá que acepte la respuesta JSON, pero funciona en todos los dominios.
Código independiente del navegador para XML HTTPRequest
Uso el siguiente código para crear un objeto XML. Ha sido diseñado para manejar todos los navegadores (especialmente IE y no IE)
/* Function to create an XMLHTTP object for all browsers */
function getXMLHTTPObject(){
var xmlHttp;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
alert("Your browser does not support AJAX!");
return false;
}
}
}
return xmlHttp;
}
/* End Function */
PD: el código en la pregunta no es legible. Pls lo formatea