19

remote-jsonp.htmlを探して、JqueryUIオートロードをダウンロードします。これは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

4

2 に答える 2

31

dataType: jsonpクロスドメインリクエストの場合、つまり、異なるドメインへdataType: jsonのリクエストと同じドメインの同じオリジンリクエストを意味します。

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

同一生成元ポリシーについて読む

jQueryAJAXについてもっと読む

于 2012-06-01T14:58:53.660 に答える
8

JSONPを使用すると、ajaxリクエストが探している場合、それが表示されないはずです。ただし、JSONPは異なるドメインからデータをプルするためのクロスドメイン呼び出しに使用されるため、リソースのリクエストが表示されるはずです。

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

于 2012-06-01T15:00:02.670 に答える