スポンサーリンク

[jquery]datatype=jsonpの場合はPOSTは使えない

jqueryでWebAPIなどでデータがほしい場合、外部ドメインの場合、データタイプはjsonpを使いますが
これはダメ

<script>
var url = "http://hoge.com/get.json";
var data = {
	page:"1"
};

$.ajax({
	type:'POST',
	url:url,	//ここにURLをセット
	dataType: 'jsonp',
	cache: false,
	scriptCharset: 'utf-8',
	jsonpCallback:'data',
	data:data,
	success:function (data) {
	}
});
</script>

なぜか?

こたえ
jsonpの場合はPOSTが使えません。
GETだけです。
ブラウザ側はPOSTを無視してGETで送る(ブラウザによるかも?)ような感じで、サーバー側で見ても
なぜかPOSTデータがありません。

ということで、素直にGETで実装しましょう。

CakePHPでデータを受け取る場合は
$this->request->query の中にGETデータが入ってきます。
Hash::get($this->request->query, “hoge”);
などとしても取り出すことができるようです。

すぐ忘れるのでメモ!