編集:応答が有効なjsonになり、ajax成功コールバックが実行されたら、サーバーから返されたjson文字列をjavascriptオブジェクトに変換します。JSON.parse()
success: function (data) {
var obj = JSON.parse(data);
alert(obj.age);
}
注:jsonシリアル化(JSON.parse)をネイティブにサポートしているのは最新のブラウザーのみです。古いブラウザがこの機能をサポートしていることを確認するには、DouglasCrockfordのjson2.jsをお勧めします。
https://github.com/douglascrockford/JSON-js/blob/master/json2.js
上記をダウンロードしてページに含めるだけで、準備完了です。
編集:サーバーからの応答には、データを含むオブジェクトを含む別の配列を含む配列が含まれています。
[[{"age":10,"id":"1","name":"John Doe","points":"4275653423"}]]
サーバーは、オブジェクトのみを含むjson文字列で応答する必要があります。
'{"age":10,"id":"1","name":"John Doe","points":"4275653423"}'
最後に、サーバーは正しいコンテンツタイプ「application/json」で応答する必要があります
編集:あなたのコメントで、サーバーがリダイレクトである303を返していると言いました。ajax呼び出しで使用しているURLは、必要なデータを返す別のURLにリダイレクトされます。データを返すURLを使用する必要があります。URLは正確に一致する必要があります。たとえばhttp://example.com/public/ruser/family
、と同じではありませんhttp://example.com/public/ruser/family/
編集:最終コード:
function getData(){
var barcode = $('#idQuery').val();
var test = $.ajax({
type: 'GET',
dataType: 'json',
url: 'http://example.com/public/ruser/family.json',
data: { barcode: barcode },
success: function (data) {
var obj = JSON.parse(data);
alert(obj.age);
}
});
}