2009-07-06 15 views
1

これは正常に動作します:これは動作しませんgetJSONコールバックのQueryStringのParam問題

  $.getJSON("http://localhost:59396/xxxWeb/ 
CarouselHandler.ashx?action=getproducts&ids=" + ids, 
       function(data) { 

        carousel.size(allProductIDs.length); 

        if (numberOfImagesLeftToShow < 
numberOfImagesToDisplay) { 
         first += (numberOfImagesToDisplay - 
numberOfImagesLeftToShow); 
        } 

        var d = 0; 
        for (var i = first; i <= last; i++) { 

         if (d != undefined) { 
          // add data using index of the array 
returned by JSON (which starts at 0) 
          carousel.add(i, decode(data[d].ImageTag)); 
         } 

         // set to last ProductID showing in Carousel 
         if (i == last) { lastProductID = parseFloat 
(data[d].ProductID); } 

         d++; 
        } 
       } 
      ); 

、私は &形式= JSON & jsoncallback =を追加しようとした後、レンダリングなしの画像を取得していませんか? :

  $.getJSON("http://localhost:59396/xxxWeb/ 
CarouselHandler.ashx?action=getproducts&ids=" + ids + 
"&format=json&jsoncallback=?", 
       function(data) { 

        carousel.size(allProductIDs.length); 

        if (numberOfImagesLeftToShow < 
numberOfImagesToDisplay) { 
         first += (numberOfImagesToDisplay - 
numberOfImagesLeftToShow); 
        } 

        var d = 0; 
        for (var i = first; i <= last; i++) { 

         if (d != undefined) { 
          // add data using index of the array 
returned by JSON (which starts at 0) 
          carousel.add(i, decode(data[d].ImageTag)); 
         } 

         // set to last ProductID showing in Carousel 
         if (i == last) { lastProductID = parseFloat 
(data[d].ProductID); } 

         d++; 
        } 
       } 
      ); 

ここでは、私たちのdevサーバーを呼び出しています。

$.getJSON("http://xxxdev/xxx/CarouselHandler.ashx? 
action=getproducts&ids=" + ids + "&format=json&jsoncallback=?", 
       function(data) { 

理由がわかりません。エラーはありません。受信したデータは、localhostを呼び出すときの最初の例と同じです。それは有効なJSONですが、それはここで問題ではありません。それは、私がquerystring paramをintruduceするとき、私の関数(データ)が起動されていないことです。それがなければ正常に動作し、関数(データ)が呼び出されます。

"& jsoncallback =?"を追加すると、または "& callback =?" 制限付きURIへのアクセスを拒否しました。「コード:」1012が拒否されましたが、私のURLにこれらのクエリースクリプトパラメータを追加すると、 プラグインにデータが表示されません。だから 私はそれを取得しません。私はそれが自動的になると思った を置き換えますか?私の場合には機能(データ)を持っていますか?私は 何かを返信する必要がありますか? yahooなどの特定の APIの前に_が必要なので、私は尋ねます。しかし、それは私も 私のjsonの応答で何かを供給する必要がありますか?私は皆あなたの要求にコールバックparamを追加するだけです。 が必要だと思いました。

答えて

3

サービスがjsonpをサポートする必要があります。これは、クライアントが実行するjavascript関数を表すために応答がコールバックキー内にラップされなければならないことを意味します。要約として

、サーバーは、それが

callbackFunctionは、クエリ文字列で指定した名前です
callbackFunction({ "x": 10, "y": 15}) 

で応答する必要がJSONPをサポートするために、本

{ "x": 10, "y": 15} 

でこれに応答するかどうか。

私の答えを参照してくださいhere詳細については

関連する問題