0

にあるWeb.APIアプリから提供されているページがありますhttp://server/application。クライアント側では、サーバーからいくつかのデータをプルするためにGETを実行しています。問題は、私が思っていたことがうまくいかないことです。

このコードは機能します:

$.ajax( {
    url: "api/slideid/getdirectories/",
    dataType: 'json',
    success: function ( data ) {
        setPaths( data );
    }
} );

しかし、これはしません:

$.getJSON( "api/slideid/getdirectories/",
    function ( data ) {
        setPaths( data );
    } );

最初の例では、フィドラーでデータを取得しようとしているURLがであることがわかりhttp://server/application/api/slideid/getdirectoriesます。これは正しいです。

第二に、それはhttp://server/api/slideid/getdirectories正しくありません。json GETのこれら2つの方法は同じだと思っていましたが、そうではないようです。

興味深いことに、これらのメソッドは両方とも私のローカル開発ボックスで機能します。一方が機能し、もう一方が機能しないのはステージングサーバーのみです。IISの設定は、私が知る限り同じです-そして私はチェックするのにかなり良い掘り下げました。

それで、jQueryのドキュメントでgetJSONが.ajax呼び出しの省略形であると述べられているのに 、なぜgetJSONが機能しないのか疑問に思っています。

編集:私はgetJSONの明示的なバージョンを入れて、それらが非常に類似した呼び出しであることを示すことを望んでいましたが、「実際の」getJSON呼び出しがそこにあります。

4

2 に答える 2

6

$.getJSON()これは次のようにする必要があります。

$.getJSON(url, {data:data}, function(data){
     alert(data);
});

{data:data}オプションです。

ドキュメントから:

これは省略形の Ajax 関数であり、次と同等です。

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});
于 2013-03-20T18:48:37.753 に答える
0
  $.getJSON(url, {data:data}, ....

間違った構文

于 2013-03-20T18:50:07.647 に答える