My webservice puts details about the occoured error in the http body.
How can I access this details in a dojo request.
For example the http error looks like this:
HTTP/1.1 500 Internal Server Error
Transfer-encoding: chunked
Content-type: application/json
Date: Tue, 18 Sep 2012 18:47:31 GMT
15
This is my exception!
0
My Dojo Request looks like this:
require(["dojo/dom", "dojo/on", "dojo/request",
"dojo/json", "dojo/domReady!"],
function(dom, on, request, JSON){
// Results will be displayed in resultDiv
var resultDiv = dom.byId("errorResult");
// Attach the onclick event handler to the makeRequest button
on(dom.byId('errorButton'),"click", function(evt){
request.get("./rest/test/error", {
// Parse data from JSON to a JavaScript object
handleAs: "json"
}).then(function(data){
resultDiv.innerHTML = "Username: " + data.name + "</br>Role:" + data.role;
},
function(error){
// Display the error returned
resultDiv.innerHTML = error;
});
});
}
);
The displayed error in the is:
RequestError: Unable to load ./rest/test/error status: 500
And what i would like to have there is the text in the body:
This is my exception!
Have a look at my answer to How to retreive XHR response code (+timestamp) of AMD’ized Dojo?
Use
deferred.response.theninstead ofdeferred.then:See it in action at jsFiddle: http://jsfiddle.net/phusick/SGh5M/