Ajax関連メモ。 jsonpを使った場合。
var w_jsonfile = 'http://xxxxxx.jp/hoge.php';
$.ajax({
type:"POST",
url:jsonfile,
dataType: "jsonp",
jsonpCallback: 'callback',
success:function(data){
console.log(data);
},
error :function(XMLHttpRequest,textStatus){
console.log(textStatus);
}
});
ポイントは、jsonpの場合は、jsonpCallbackパラメータが必要。 jQuery 1.5以降はこれで戻り値を指定する様になったようだ。 詳しくは、http://api.jquery.com/jQuery.ajax/ で、hoge.phpではxmlからjsonへ変換して、上に倣ってcallback()の形で返す。
$xml = "fuga.xml";
$result = simplexml_load_file($xml);
$encode = json_encode($result);
header("Content-Type: text/javascript; charset=utf-8");
echo sprintf("callback(%s)",$encode);
これでOK。