Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 20-feb-2008, 09:43   #1 (permalink)
Capi666 ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 364
No me entra por if( ajax.status == 200 )

Hola, estoy intentando programar algo de ajax a ver si me aclaro...

Código:
var ajax;

function funcionCallback()
{
	// Comprobamos si la peticion se ha completado (estado 4)
	if( ajax.readyState == 4 )
	{
		// Comprobamos si la respuesta ha sido correcta (resultado HTTP 200)
		if( ajax.status == 200 )
		{
                        alert('NO ENTRA POR AQUI');
			// Escribimos el resultado en la pagina HTML mediante DHTML
			//document.all.salida.innerHTML = "<b>"+ajax.responseText+"</b>";	
			
			
			  <%  
			  
  int itemTypeCount = syncBoItemsBean.size(); 
  for(int itemTypeNo=0; itemTypeNo < itemTypeCount; itemTypeNo++) {
  
	FV.bean.TableViewBean itemBean = (FV.bean.TableViewBean) syncBoItemsBean.elementAt(itemTypeNo); 
	int itemColCount = itemBean.getTableColumns();
	int itemRowCount = itemBean.getTableRows();

  int j = 0;
  //datos[][] = new String[rowCount][colCount];
%>
	var det = new Array(<%=itemRowCount-1%>);
	
<%  
  for(int row=1; row < itemRowCount; row++) {
  	
  	%>
  	det[<%=row-1%>]= new Array(9);
  	<% 
	j = 0;
	for(int col=1; col < itemColCount; col++) {		
		String value = itemBean.getTableContent(row, col);
		if (col==3)
			continue;
		//datos[row][col] = value;
		%>
		det[<%=row-1%>][<%=j%>] = '<%=value%>';
		<%
		j++;
	}
  }
  }
  
  
 %>
			
			
			store2.loadData(det);
		}
	}
}

function detail(sy, bo)
{
	// Creamos el control XMLHttpRequest segun el navegador en el que estemos 
	if( window.XMLHttpRequest )
		ajax = new XMLHttpRequest(); // No Internet Explorer
	else
		ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer

	// Almacenamos en el control al funcion que se invocara cuando la peticion
	// cambie de estado	
	ajax.onreadystatechange = funcionCallback;
	
	// Enviamos la peticion
	ajax.open( "GET", "pagina2.jsp?sync="+sy+"&sbo="+bo, true );
	ajax.send( "" );
}
No me entra por ajax.status == 200, ¿porque?

Gracias,
Capi666 está desconectado   Responder Citando
Antiguo 20-feb-2008, 11:35   #2 (permalink)
MaBoRaK llegará a ser famoso muy prontoMaBoRaK llegará a ser famoso muy pronto
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.782
Enviar un mensaje por MSN a MaBoRaK
Re: No me entra por if( ajax.status == 200 )

loading.............


Pasa que 200 es cuando el resultado es OK y el contenido es NUEVO osea.. por ejemplo cuando haces una peticion por el método GET 2 veces. la primera vez es 200 pero la segunda es 304 o 206 ya que la página ya fué cacheada. Ve los status codes.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html


connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 20-feb-2008, 12:31   #3 (permalink)
Capi666 ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 364
Re: No me entra por if( ajax.status == 200 )

Bufff, no he entendido nada... ¿Cual es el problema?

Código:
var ajax;

function funcionCallback()
{
	// Comprobamos si la peticion se ha completado (estado 4)
	if( ajax.readyState == 4 )
	{
		// Comprobamos si la respuesta ha sido correcta (resultado HTTP 200)
		if( ajax.status == 200 )
		{
                        alert('NO ENTRA POR AQUI');			
			store2.loadData(det);
		}
	}
}

function detail(sy, bo)
{
	// Creamos el control XMLHttpRequest segun el navegador en el que estemos 
	if( window.XMLHttpRequest )
		ajax = new XMLHttpRequest(); // No Internet Explorer
	else
		ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer

	// Almacenamos en el control al funcion que se invocara cuando la peticion
	// cambie de estado	
	ajax.onreadystatechange = funcionCallback;
	
	// Enviamos la peticion
	ajax.open( "GET", "pagina2.jsp?sync="+sy+"&sbo="+bo, true );
	ajax.send( "" );
}
pagina2.jsp es una llamada a una funciona java con los parametros sync y sbo
Código:
<%
mis.detalles(get:sync, get_sbo);
%>
Un saludo,
Capi666 está desconectado   Responder Citando
Antiguo 22-feb-2008, 10:00   #4 (permalink)
MaBoRaK llegará a ser famoso muy prontoMaBoRaK llegará a ser famoso muy pronto
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.782
Enviar un mensaje por MSN a MaBoRaK
Re: No me entra por if( ajax.status == 200 )

loading...........


Entonces mira, para que no te compliques solo quita el if

Código PHP:
function funcionCallback()
{
    
// Comprobamos si la peticion se ha completado (estado 4)
    
if( ajax.readyState == )
    {
        
alert('NO ENTRA POR AQUI');
    }

O bien, puedes ponerlo tambien as'i


Código PHP:
function funcionCallback()
{
    
// Comprobamos si la peticion se ha completado (estado 4)
    
if( ajax.readyState == )
    {
        
// Comprobamos si la respuesta ha sido correcta (resultado HTTP 200)
        
if( ajax.status !== 404 )
        {
                        
alert('NO ENTRA POR AQUI');            
            
store2.loadData(det);
        }
    }

Ya que solo te interesa de que el contenido SE REALIZE sin importar si sea de cache u otra cosa, excluyendo claro un error 404.


connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 23-feb-2008, 01:53   #5 (permalink)
Capi666 ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 364
Re: No me entra por if( ajax.status == 200 )

ahhhhh, ok ok, vale, muchas gracias.

Un saludo,
Capi666 está desconectado   Responder Citando
Antiguo 25-feb-2008, 01:39   #6 (permalink)
Capi666 ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 364
Re: No me entra por if( ajax.status == 200 )

Si pongo esto

Código PHP:
if( ajax.status !== 404 )  {
   ...

No me entra...

Un saludo,
Capi666 está desconectado   Responder Citando
Antiguo 25-feb-2008, 08:37   #7 (permalink)
MaBoRaK llegará a ser famoso muy prontoMaBoRaK llegará a ser famoso muy pronto
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.782
Enviar un mensaje por MSN a MaBoRaK
Re: No me entra por if( ajax.status == 200 )

loading...........


Sea pragmático hombre, compruebe que status le devuelve su petición

Código PHP:
function funcionCallback()
{
    
// Comprobamos si la peticion se ha completado (estado 4)
    
if( ajax.readyState == )
    {
     
alert(ajax.status)
    }


connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 13:36.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93