2009-07-06 50 views
1

這工作得很好:的getJSON回調查詢字符串帕拉姆問題

  $.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++; 
        } 
       } 
      ); 

同樣在這裏,調用我們的開發服務器。

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

不知道爲什麼。沒有錯誤,沒有。接收到的數據與我在調用localhost時的第一個示例沒有區別。所以這是有效的JSON,這不是問題在這裏。這是我的函數(數據)沒有被觸發時,我介入查詢字符串參數。沒有它,它會正常工作,並調用函數(數據)。

添加「& jsoncallback =?」或「& callback =?」刪除了訪問 受限制的URI被拒絕的「代碼:」1012,但當我的URL中添加了任何查詢字符串參數時,我的 插件中沒有顯示數據。所以 我不明白。我以爲它應該自動 替換?與函數(數據)在我的情況?我需要發送 東西迴應什麼?我問,因爲某些 API(例如yahoo)需要前面的_。但這是否意味着我需要在我的json響應中提供某些東西?我認爲你所需要做的只是在請求中添加回調參數。

回答

3

您的服務需要支持jsonp,這意味着響應必須被封裝在回調鍵中以表示客戶端執行的JavaScript函數。

作爲總結,如果你的服務器有這個目前

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

響應支持JSONP它需要與

callbackFunction({ "x": 10, "y": 15}) 

其中callbackFunction參數是查詢字符串指定的名稱作出迴應。

查看我的回答here瞭解更多信息