2009-07-06 8 views
1

Param Cela fonctionne très bien:getJSON rappel QueryString Problème

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

Cela ne fonctionne pas, je suis pas d'images après avoir essayé d'rendais ajouter le format & = 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++; 
        } 
       } 
      ); 

Même pour ici, en appelant à notre serveur de dev.

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

Aucune idée pourquoi. Pas d'erreurs, rien. Les données reçues en retour ne sont pas différentes du premier exemple lorsque j'appelais localhost. Donc, c'est JSON valide, ce n'est pas le problème ici. C'est que ma fonction (données) n'est pas déclenchée quand j'intruduis le paramètre querystring. Sans cela, cela fonctionne bien et la fonction (données) est appelée.

Ajout d'un "& jsoncallback =?" ou "& callback =?" se débarrasser de l'accès à URI restreint a refusé "code:" 1012 mais je ne reçois aucune donnée dans mon plug-in lors de l'ajout de l'un de ces paramètres querystring à mon URL. Donc Je ne comprends pas. Je pensais que c'est censé remplacer automatiquement ? avec la fonction (données) dans mon cas ?? Dois-je envoyer quelque chose dans la réponse ou quelque chose ?? Je demande parce que certains APIs tels que Yahoo nécessitent un _ devant. Mais cela signifie-t-il que je dois également fournir quelque chose dans ma réponse json? Je pensais que tout ce que vous devez faire est d'ajouter le paramètre callback dans votre requête.

Répondre

3

Votre service doit prendre en charge jsonp, ce qui signifie que la réponse doit être encapsulée dans la clé de rappel pour représenter une fonction javascript exécutée par le client.

En résumé, si votre serveur répond avec ce à l'heure actuelle

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

pour soutenir jsonp il doit répondre avec

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

où callbackFunction est le nom spécifié dans la chaîne de requête.

Voir ma réponse here pour plus d'infos