Как передать параметры с функциями обратного вызова в поисковые API, такие как Yahoo BOSS и BING? - PullRequest
2 голосов
/ 17 февраля 2011

Я использую API Yahoo BOSS и Bing для обеспечения функциональности поиска на моем сайте.В частности, я использую их форматы ответов JSON, в которых я передаю функцию обратного вызова поставщику поиска, который позднее будет вызываться с результатами поиска.Моя функция обратного вызова на самом деле вызывается, но проблема в том, что если я делаю более одного запроса за раз, я не могу сказать, для какого запроса нужен определенный ответ.Для этого есть ли способ передать дополнительные параметры с функцией обратного вызова поставщику поиска, чтобы я мог позже использовать его, чтобы определить, какой ответ идет с каким запросом?Спасибо

1 Ответ

1 голос
/ 11 января 2012

У меня такая же проблема с тобой!Я погуглил и нашел некоторые решения, и я решил свою проблему.Теперь я покажу его вам, я надеюсь, что это может вам помочья хочу добавить некоторую информацию о пин-коде здесь}

Поскольку каждый сценарий при добавлении в документ (document.body.appendChild (script);) будет выполняться -> и обратный вызов, вы не можете добавить больше параметров.

Я решаю это по запросу через ajax (больше не добавляет к документу), когда успешный вызов ajax -> я вызываю GeocodeCallback (результат, 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}
...