PhoneGapでAjaxを使う

PhoneGapでサーバーと通信をすることになったらAjaxを使うのが一般的かなと思いますが、
jQueryを使ったAjax通信(クロスドメイン編) - おかひろの雑記で書いたようなクロスドメイン制約を
考慮しなくてはいけないのかなぁー って試してみたら、気にする必要はないみたいでした。

たとえばサーバー側がこんな感じのJSONを返すとしたら

{"id" : "A001","name" : "山田太郎"};

こういう記述で問題ありません。

$.ajax({
	url : 'http://www.example.jp/normalAjax',
	success : function(data)
	{
		var jsonData = $.parseJSON(data);
		alert(jsonData.name);
	},
	error : function(data)
	{
		alert('Error!');
	},
	complete : function(data)
	{
		
	}
});

サーバーがAccess-Control-Allow-Originヘッダーをつけてくれなくても大丈夫みたいでした。

ただ、これだけでは実はダメで、XcodeでPhoneGapのプロジェクトを開き、Cordova.plistファイルを編集する必要があります。

ExternalHostの欄に、Ajax通信するサーバーを指定します。

これで通信できるようになると思います。