2011.06.21 | kaminaly
ども。チョイとはまったのでメモです。
jQuery.getJSONを使おうと思ったのだけど、
いっこうにコールバック帰ってこない。
なんや、JSONの時はkeyも「”」でくくらないといけないのか。。
{"key":"value"}
jQueryのパースで止まってたってことのような。
エラーも吐かず。
あと、「’」でくくるのもNGなんだってさ。
ふーん。
ども。チョイとはまったのでメモです。
jQuery.getJSONを使おうと思ったのだけど、
いっこうにコールバック帰ってこない。
なんや、JSONの時はkeyも「”」でくくらないといけないのか。。
{"key":"value"}
jQueryのパースで止まってたってことのような。
エラーも吐かず。
あと、「’」でくくるのもNGなんだってさ。
ふーん。
問題その1 Ajaxの読み込みは同じドメインからでないとNG(まぁ当たり前)
対処:サーバサイド(phpなど)で別ドメインxmlを読み込んで、それをAjaxで読み込む(まぁ当たり前)
※当たり前なんだけど、サーバと通信が必要な(まさに)Ajaxは偶にしか使わず、
忘れていることが多い。その際に必ず焦る。
問題その2 IE+jQueryでxmlにコメント有りの時に動かない事がある
対処:phpでヘッダにContent-Type: text/xmlを設定しなければなるまい。
やらないで、戻り値を$(data)などとすると、データがプレーンテキストで渡って、
コメントの所でパース失敗するっぽい。(未確認ですが・・・)
タグのみのテキストだと、jQueryが内部でエレメント生成してくれるので、問題が起きない。
追記:
クロスドメインでなくてもだけど、jsonだったら、
Content-Type: application/x-javascript; charset=utf-8
だな。