【问题标题】:How can I pass parameters with callback functions to search APIs like Yahoo BOSS and BING?如何通过回调函数传递参数以搜索 Yahoo BOSS 和 BING 等 API?
【发布时间】:2011-02-17 14:59:39
【问题描述】:

我正在使用 Yahoo BOSS 和 Bing API 为我的网站提供搜索功能。具体来说,我使用他们的 JSON 响应格式,在其中将回调函数传递给搜索提供程序,稍后将与搜索结果一起回调。我的回调函数实际上被调用了,但问题是,如果我一次发出多个请求,我无法判断某个响应是针对哪个请求的。为此,有没有办法通过回调函数将附加参数传递给搜索提供程序,以便我以后可以使用它来识别哪个响应与哪个请求一起使用? 谢谢

【问题讨论】:

    标签: bing-api yahoo-boss-api


    【解决方案1】:

    我和你有同样的问题!我用谷歌搜索并找到了一些解决方案 我已经解决了我的问题。现在我给你看,希望对你有帮助:)

    之前的代码:

           function MakeGeocodeRequest(credentials) {
            var pins = checkLocation.d
            $.each(pins, function (index, pin) {
                var geocodeRequest = 'http://ecn.dev.virtualearth.net/REST/v1/Locations/' + pin.City + ',' + pin.Country + '?output=json&jsonp=GeocodeCallback&key=' + credentials;
                CallRestService(geocodeRequest);
            });
    
    
    
        function CallRestService(request) {
            var script = document.createElement("script");
            script.setAttribute("type", "text/javascript");
            script.setAttribute("src", request);
            document.body.appendChild(script);
        }
    

    function GeocodeCallback(result) {.. 与结果回调有关,--> 我想在此处添加一些引脚信息}

    因为每个 sccipt 在添加到文档时 (document.body.appendChild(script);) 都会运行 --> 和回调,所以不能添加更多参数。

    我通过 ajax 请求解决它(不再添加到文档中),当 ajax 调用成功时 --> 我调用 GeocodeCallback(result, pin) 这是完整的代码。

       function MakeGeocodeRequest(credentials) {
            var pins = checkLocation.d;
            $.each(pins, function (index, pin) {
                $.ajax({
                    url:"http://ecn.dev.virtualearth.net/REST/v1/Locations/",
                    dataType: "jsonp",
                    data:{key:credentials,q:pin.City + ',' + pin.Country},
                    jsonp:"jsonp",
                    success: function(result){
                        GeocodeCallback(result,pin);
                    }
                });
            });
        }
        function GeocodeCallback(result,pin) { ... to do here}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多