web-dev-qa-db-ja.com

dataType jsonpとJSONの違い

Jquery UIオートロードをダウンロードし、remote-jsonp.htmlを探します。これはajax関数ですが、コンソールを開きます。コンソールに要求が表示されません...

DataType; "jsonp"とdataType; "JSON"の違いは何ですか

$( "#city" ).autocomplete({
        source: function( request, response ) {
            $.ajax({
                url: "http://ws.geonames.org/searchJSON",
                dataType: "jsonp",
                data: {
                    featureClass: "P",
                    style: "full",
                    maxRows: 12,
                    name_startsWith: request.term
                },
                success: function( data ) {
                    response( $.map( data.geonames, function( item ) {
                        return {
                            label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
                            value: item.name
                        }
                    }));
                }
            });
        },

参照http://jqueryui.com/demos/autocomplete/remote-jsonp.html

19
Alizain Prasla

dataType: jsonpクロスドメインリクエストの場合、異なるドメインへのリクエストとdataType: json同じドメインと同じOriginリクエストの場合。

JSONPを使用してJSONブロックにロードします。 「?callback =?」を追加しますURLの最後に追加して、コールバックを指定します。キャッシュオプションがtrueに設定されていない限り、クエリ文字列パラメーター "_ = [TIMESTAMP]"をURLに追加することにより、キャッシュを無効にします。

と同じOriginポリシーについて読む

jQuery AJAXの詳細を読む

28
thecodeparadox

JSONPを使用すると、探しているのがajaxリクエストであることがわかりません。ただし、JSONPは異なるドメインからデータをプルするためのクロスドメインコールに使用されるため、リソースのリクエストが表示されます。

関数名でラップされたJSONデータを返します。 jQueryはバックグラウンドで関数名を処理し、データを成功ハンドラーに渡します。データは、呼び出されるサービスを指すsrc属性を持つスクリプト要素を動的に作成することによって読み込まれ、ブラウザーのDOMにアタッチされます。次に、ブラウザーがリソースにリクエストを行い、Webサービスがコールバック関数とデータで応答します。

8
jlafay