getJSON回调QueryString Param问题

时间:2009-07-06 15:09:42

标签: jquery

这很好用:

            $.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,这不是问题所在。这是因为当我引入查询字符串参数时,我的函数(数据)没有被触发。没有它,它工作正常,并调用函数(数据)。

添加“&amp; jsoncallback =?”或“&amp; callback =?”摆脱了访问 受限制的URI被拒绝“代码:”1012但我没有在我的数据中显示数据 将这些querystring params中的任何一个添加到我的url时插件。所以 我不明白。我认为它应该是自动的 替换?我的情况下有功能(数据)?我需要发送吗? 什么东西回来的回应或什么?我问,因为肯定 像雅虎这样的API需要前面的_。但这也意味着我 还需要在我的json响应中提供一些东西吗?我以为你都是 我们需要做的只是在你的请求中添加回调参数。

1 个答案:

答案 0 :(得分:3)

您的服务需要支持jsonp,这意味着响应必须包含在回调键中,以表示客户端执行的javascript函数。

总结一下,如果您的服务器目前以此回应

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

支持jsonp,需要回复

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

其中callbackFunction是查询字符串中指定的名称。

有关详细信息,请参阅我的回答here