Wrapped Request with automated receiving of JavaScript Objects in JSON Format.
Extends:
Syntax:
var myJSONRemote = new Request.JSON([options]);
Arguments:
- options - (object, optional) See below.
Options:
- secure - (boolean: defaults to true) If set to true, a syntax check will be done on the result JSON (see JSON.decode).
Events:
success
Fired when the request completes. This overrides the signature of the Request success event.
Signature:
onSuccess(responseJSON, responseText)
Arguments:
- responseJSON - (object) The JSON response object from the remote request.
- responseText - (string) The JSON response as string.
error
Fired when the parsed JSON is not valid and the secure option is set.
Signature:
onError(text, error)
Arguments:
- text - (string) The response text.
- error - (string) The error message.
failure
Fired when the request failed (error status code).
Signature:
onFailure(xhr)
Arguments:
xhr - (XMLHttpRequest) The transport instance.
Returns:
- (object) A new Request.JSON instance.
Example:
// this code will send a data object via a GET request and alert the retrieved data.
var jsonRequest = new Request.JSON({url: 'http://site.com/tellMeAge.php', onSuccess: function(person){
alert(person.age); // alerts "25 years".
alert(person.height); // alerts "170 cm".
alert(person.weight); // alerts "120 kg".
}}).get({'firstName': 'John', 'lastName': 'Doe'});
Cross-Origin Resource Sharing (CORS) note:
The Request.JSON class will (by default) add two custom headers that, if used for a cross-origin request, will have to be reported as allowed in the preflight request, in addition to any other headers you may set yourself:
Access-Control-Allow-Headers: X-Requested-With, X-Request