Comment dois-je formuler une requête AJAX ?

Index

Voir les résultats des transactions AJAX JSON et JSONP dans la console, touche F12.

Code JS : 

var jqXHRjson = $.getJSON( "faq.php?" ),
		jqXHRjsonp = $.getJSON( "faq.php?callback=?" );
	
	jqXHRjson.done( function( data, textStatus, jqXHR ){
		console.log( data, textStatus, jqXHR );
	});
	
	jqXHRjson.fail( function( jqXHR, textStatus, errorThrown ){
		console.log( jqXHR, textStatus, errorThrown );
	});
	
	jqXHRjsonp.done( function( data, textStatus, jqXHR ){
		console.log( data, textStatus, jqXHR );
	});
	
	jqXHRjsonp.fail( function( jqXHR, textStatus, errorThrown ){
		console.log( jqXHR, textStatus, errorThrown );
	});
Code PHP : 

<?php
header( 'Access-Control-Allow-Origin : *' );
$callback = isset( $_GET[ 'callback' ] ) ? preg_replace( '/[^a-z0-9$_]/si', '', $_GET[ 'callback' ]) : false;
header( 'Content-Type : ' . ( $callback ? 'application/javascript' : 'application/json' ) .  ';charset=UTF-8' );

$data = array(
    "foo" => "bar",
    "bar" => "foo",
);

echo ( $callback ? $callback . '(' : '') . json_encode( $data ) . ( $callback ? ')' : '');
?>

Tests unitaires avec QUnit.