Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   No me entra por if( ajax.status == 200 ) (http://www.forosdelweb.com/f127/no-entra-por-if-ajax-status-200-a-558783/)

Capi666 20/02/2008 10:43

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,

MaBoRaK 20/02/2008 12: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.

Capi666 20/02/2008 13:31

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,

MaBoRaK 22/02/2008 11:00

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.

Capi666 23/02/2008 02:53

Re: No me entra por if( ajax.status == 200 )
 
ahhhhh, ok ok, vale, muchas gracias.

Un saludo,

Capi666 25/02/2008 02:39

Re: No me entra por if( ajax.status == 200 )
 
Si pongo esto

Código PHP:

if( ajax.status !== 404 )  {
   ...


No me entra...

Un saludo,

MaBoRaK 25/02/2008 09:37

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.


La zona horaria es GMT -6. Ahora son las 10:56.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.