29/08/2006, 06:21
|
| | Fecha de Ingreso: agosto-2006
Mensajes: 3
Antigüedad: 18 años, 3 meses Puntos: 0 | |
Ajax: Con asp y xml integrado no funciona... Hola amigos! pues ya no sé qué más probar. Desde un asp llamo a archivo.xml y funciona pero si llamo desde un asp a otro y éste último tiene escrito el xml no funciona ¿alguna idea?
Este es el código:
INICIOAJAX.ASP
%@ Language="VBScript"%>
<html>
<head>
<script language="javascript" type="text/javascript">
function creaAjax(){
//-------------------------------------------------------------------------------
var objetoAjax=false;
try {
/*Para navegadores distintos a internet explorer*/
objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
/*Para explorer*/
objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E) {
objetoAjax = false;
}
}
if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
objetoAjax = new XMLHttpRequest();
}
return objetoAjax;
}
function FAjax (url,capa,valores,metodo){
//-------------------------------------------------------------------------------
var ajax=creaAjax();
var capaContenedora = document.getElementById(capa);
/*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
if(metodo.toUpperCase()=='POST'){
document.write="hola pepe";
ajax.open ('POST', url, true);
ajax.onreadystatechange = function() {
if (ajax.readyState==1) { //Petición en carga
capaContenedora.innerHTML="Cargando.......";
}
else if (ajax.readyState==4){ //Petición completada
if(ajax.status==200)
{
document.getElementById(capaContenedora).innerHTML =ajax.responseText;
}
else if(ajax.status==404)
{
capaContenedora.innerHTML = "La direccion existe";
}
else
{
capaContenedora.innerHTML = "Error: ".ajax.status;
}
}
}
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajax.send(valores);
return;
}
/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
if (metodo.toUpperCase()=='GET'){
ajax.open ('GET', url, true);
ajax.onreadystatechange = function() {
alert(ajax.readyState);
if (ajax.readyState==1) {
capaContenedora.style.visibility="visible";
capaContenedora.innerHTML="Cargando.......";
}
else if (ajax.readyState==4){
capaContenedora.style.visibility="visible";
if(ajax.status==200){
var vxml = ajax.responseXML.documentElement;
//Accedemos al xml recibido
//for (i = 0; i < vxml.getElementsByTagName('mensaje').length; i++){
var item = vxml.getElementsByTagName('mensaje')[1];
var txt = item.getElementsByTagName('texto')[0].firstChild.data; //también se puede escribir así
capaContenedora.style.visibility="visible";
capaContenedora.innerHTML=txt;
//}
}
else if(ajax.status==404)
{
capaContenedora.innerHTML = "La direccion existe";
}
else
{
capaContenedora.innerHTML = "Error: "+ajax.status;
}
}
}
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajax.send(null);
return;
}
}
//---------------------------------------------------------------------------------
</script>
</head>
<body>
<!--<div style="text-align: center;"><form method="get" onsubmit="FAjax('archivo.xml','capaContenedora','' ,'get'); return false" action="#">-->
<div style="text-align: center;"><form method="get" onsubmit="FAjax('ajax.asp','capaContenedora','','g et'); return false" action="#">
<div style="paddi">Campo1:<input type="text" id="campo1" value="valor1" /></div>
<div style="text-align=top;">Campo2:<input id="campo2" value="valor2"></div>
<div><input type="submit" value="enviar"></div>
</form></div>
<div id="capaContenedora" style="visibility:hidden">Capa que recibirá los datos</div>
</body>
</html>
El código de AJAX.ASP sería:
<%@ Language="VBScript"
response.contentType ="text/xml"%>
<%
response.write ("<?xml version="1.0" encoding=""UTF-8""?><mensaje><texto>Ejemplo 1</texto></mensaje><mensaje><texto>Ejemplo 2</texto></mensaje>")
%>
Si en lugar de ajax.asp creo archivo.xml con el mismo contenido y redirecciono la página a éste funciona! No tengo ni idea de lo que puede pasar, me podéis ayudar por favor? Gracias |