Foros del Web » Programando para Internet » Javascript » Frameworks JS »

No me entra por if( ajax.status == 200 )

Estas en el tema de No me entra por if( ajax.status == 200 ) en el foro de Frameworks JS en Foros del Web. Hola, estoy intentando programar algo de ajax a ver si me aclaro... Código: var ajax; function funcionCallback() { // Comprobamos si la peticion se ha ...
  #1 (permalink)  
Antiguo 20/02/2008, 10:43
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 9 meses
Puntos: 0
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,
  #2 (permalink)  
Antiguo 20/02/2008, 12:35
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
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 Technologies
  #3 (permalink)  
Antiguo 20/02/2008, 13:31
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 9 meses
Puntos: 0
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,
  #4 (permalink)  
Antiguo 22/02/2008, 11:00
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
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 Technologies
  #5 (permalink)  
Antiguo 23/02/2008, 02:53
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: No me entra por if( ajax.status == 200 )

ahhhhh, ok ok, vale, muchas gracias.

Un saludo,
  #6 (permalink)  
Antiguo 25/02/2008, 02:39
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: No me entra por if( ajax.status == 200 )

Si pongo esto

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

No me entra...

Un saludo,
  #7 (permalink)  
Antiguo 25/02/2008, 09:37
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
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 Technologies
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:29.