views:

1075

answers:

2

Hi all,

I am sending an error response to my jQuery. However I can not get the response text (in the example below this would be Gone to the beach)

The only thing jQuery says is 'error'.

See this example for details:

php

<?
header('HTTP/1.1 500 Internal Server Error');
print "Gone to the beach"
?>

jQuery

$.ajax({
type: "post",
data: { id : 0 },
cache: false,
url: "doIt.php" ,
dataType: "text",
error: function(request,error) 
{
 console.log(arguments);
 alert ( " Can't do because: " + error );
}
success: function ( )
{
 alert ( " Done ! " );
});

now my result ist:

log:

 [XMLHttpRequest readyState=4 status=500, "error", undefined]

alert:

Can't do because: error

Any ideas?

+8  A: 

Look at the responseText property of the request parameter.

tvanfosson
oh.. that works.. embarrassing .. thanks anyway!! :)
Ghommey
+1  A: 

Try:

error: function(xhr, status, error) {
  var err = eval("(" + xhr.responseText + ")");
  alert(err.Message);
}

Look also at this encosia article for proper error handling.

Alex Bagnolini