httpData: function( xhr, type, s ) {
var ct = xhr.getResponseHeader("content-type"),
xml = type === "xml" || !type && ct && ct.indexOf("xml") >= 0,
+ json = type === "json" || !type && ct && ct.indexOf("json") >= 0,
data = xml ? xhr.responseXML : xhr.responseText;
if ( xml && data.documentElement.nodeName === "parsererror" ) {
}
// Get the JavaScript object, if JSON is used.
- if ( type === "json" ) {
+ if ( json ) {
// Try to use the native JSON parser first
try {
data = JSON.parse( data );
<?php
error_reporting(0);
+if ( $_REQUEST['header'] ) {
+ header("Content-type: application/json");
+}
+
$json = $_REQUEST['json'];
if($json) {
echo '[ {"name": "John", "age": 21}, {"name": "Peter", "age": 25 } ]';
} else {
echo '{ "data": {"lang": "en", "length": 25} }';
}
-?>
\ No newline at end of file
+?>
});
});
+test("jQuery.ajax() - json by content-type", function() {
+ expect(5);
+
+ stop();
+
+ jQuery.ajax({
+ url: "data/json.php",
+ data: { header: "json", json: "array" },
+ success: function( json ) {
+ ok( json.length >= 2, "Check length");
+ equals( json[0].name, 'John', 'Check JSON: first, name' );
+ equals( json[0].age, 21, 'Check JSON: first, age' );
+ equals( json[1].name, 'Peter', 'Check JSON: second, name' );
+ equals( json[1].age, 25, 'Check JSON: second, age' );
+ start();
+ }
+ });
+});
+
test("jQuery.getJSON(String, Hash, Function) - JSON array", function() {
expect(5);
stop();