Foros del Web » Programando para Internet » PHP »

como setear ajax status !=200 en php

Estas en el tema de como setear ajax status !=200 en php en el foro de PHP en Foros del Web. hola a todos: Esto casi es una duda existencial, no se porque no me surgió antes. Estoy usando la función ajax de jquery, php recibe ...
  #1 (permalink)  
Antiguo 30/09/2010, 13:26
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 4 meses
Puntos: 35
como setear ajax status !=200 en php

hola a todos:
Esto casi es una duda existencial, no se porque no me surgió antes.

Estoy usando la función ajax de jquery, php recibe el request y retorna los datos.
dicha funcion ajax posee 2 callback, uno de success y otro de error.

Imaginemos que con php devuelvo un string con una cartel de "Error al insertar los datos." Y quiero que los capture el callback de error.
¿como podria desde php setear el status diferente de 200 para que en vez de success actúe el callback de error????
Ya que siempre me está actuando el success.

¿puedo hacerlo desde php?
__________________
I am Doyle please insert code.
  #2 (permalink)  
Antiguo 30/09/2010, 13:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: como setear ajax status !=200 en php

Claro, usa header() para mandarlo, por ejemplo:
Código PHP:
Ver original
  1. header( 'HTTP/1.0 500 Internal Server Error');

En esta lista puedes ver todos los status del protocolo HTTP: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html Aunque no te recomiendo que lo manejes por ese camino ya que como bien lo ves son para errores en la capa de HTTP, no en la capa de tu aplicación.

Saludos.
  #3 (permalink)  
Antiguo 30/09/2010, 14:16
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: como setear ajax status !=200 en php

entiendo, pero no entonces el response error de una transaccion ajax, a mi entender queda casi obsoleto.
Si deseo retornar un error debo hacer el tratamiento en el success....
Gracias por la info.
__________________
I am Doyle please insert code.
  #4 (permalink)  
Antiguo 30/09/2010, 15:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: como setear ajax status !=200 en php

Lo que pasa es que el error/success es de la transacción http, como te comento puedes usarla pero no es lo más recomendable ya que aunque no se inserte en la bdd la petición http fue exitosa es por eso que tu debes de manejar ese error.

Saludos.
  #5 (permalink)  
Antiguo 30/09/2010, 20:30
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: como setear ajax status !=200 en php

ok, entonces trabajaré el callback success, gracias por aclararme este importante concepto!
__________________
I am Doyle please insert code.
  #6 (permalink)  
Antiguo 21/10/2010, 10:39
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 19 años, 4 meses
Puntos: 4
Respuesta: como setear ajax status !=200 en php

Hola que tal, también tuve la duda que comenta doylelives en cuanto a que ajax detecte el "error" cuando del lado del server pasa algo (los datos no pasan la validación, no se insertaron los registros, etc.) estaba investigando y encontré lo siguiente que demuestra lo que GatorV comentaba, es decir, darle tratamiento a ese tipo de errores. aquí el link:


jQuery AJAX tutorial

Como nota informativa, en el tutorial se utiliza json para retornar los datos.

Saludos.
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::

Etiquetas: ajax, status
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 08:00.