私の知る限り、JSONPはXHRを作る代わりにURLからスクリプトを読み込んでいます。 json/xml/plain-textを返すのではなく、URLはjavasriptを返します。返されるjavascriptは、JSONデータが渡されたグローバル関数への呼び出しになります。 jQueryは、JSONPリクエストの前にこのグローバル関数を作成し、そのIDをJSONPリクエスト内の「コールバック」として送信します。
簡単に言えば、$ _GET ['callback']にアクセスする必要があります(クロスドメインの場合は$ .getを使用する必要があります)、コールバック関数の名前を保持します。たとえば、
<?php echo $_GET['callback']."(".json_encode($arrayJSONData).")"; ?>
これは、jsonデータが渡された状態でグローバルjavascript関数を呼び出すjavascriptを返します。
これはXHR/Ajaxではなく、新しいDOMスクリプト要素を動的に追加するという意味で、データをPOSTできないため、$ _POSTはありません。 HTMLでスクリプト要素を作成すると、POSTデータをどのように送信しますか? GETデータのうち、渡すことができるのは<script src='someurl.php?this=getdatastuff'></script>
です。
私はそれがすべての仕組みだと思います。 xb
出典
2010-12-13 12:09:53
Sam
最初の投稿はコード、もう1つは正しいヘッダー(http://snippets.dzone.com/posts/show/5882)を設定していますか? –