Почему простой веб-поиск Google через getJSON не всегда работает?

Этот простой веб-поиск через API Google ненадежен. Иногда он возвращает 4 первых результата (как и должно быть), иногда JSON считает, что это «успех», но responseData имеет значение null. Почему я получаю эти несоответствия? Это асинхронная проблема? Как мне сделать его более стабильным? (Когда я ищу изображения в Google, это стабильно)

var baseUrl = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&start=0&q="; 
var searchTerm = "obama"; //Lots of hits

$(document).ready(function() // don't do anything until the document is loaded.
{  
$.getJSON(baseUrl + searchTerm +  "&callback=?", function(json) // call getJSON providing the complete url with search term and a JSONP callback
    {
    $.each(json.responseData.results, function(i, gResults){  
        console.log("title: " + gResults.titleNoFormatting);
    });
  });
});

Когда это не удается, я нахожу это в структуре данных json:

json.responseDetails: "Suspected Terms of Service Abuse. Please see
  http://code.google.com/apis/errors"

Поэтому Google думает, что я атакую ​​его слишком большим количеством запросов. Нужно ли устанавливать ключ API? сейчас я просто включаю

<meta name="google-site-verification" content="myAPIkey-Herevbng66r" />

Но я запускаю на своем локальном компьютере, так что, возможно, это не поможет…


person TOMvonMOM    schedule 15.09.2011    source источник
comment
Я с той же проблемой. Это связано с тем, что вы запускаете его локально. Моя та же кодовая база, работающая на развернутом сервере, не выдает ошибок. Эта проблема тормозит мое развитие, я был бы признателен, если бы кто-то мог указать причину или решение.   -  person Baz    schedule 24.11.2011


Ответы (1)


Попробуй это:

function(json) // call getJSON providing the complete url with search term and a JSONP callback
    {
       if (json.responseData === null)
          console.log("json returned nothing");
       else
         $.each(json.responseData.results, function(i, gResults){  
             console.log("title: " + gResults.titleNoFormatting);
         });
  });
});
person Hogan    schedule 16.09.2011
comment
Спасибо, но цель этого упражнения не в том, чтобы выявить какие-либо ошибки javascripts, а в том, чтобы сделать его более стабильным. Обама должен вернуть миллион просмотров, верно? Тогда почему google/ajax/json возвращает null и все еще считает, что это успех? - person TOMvonMOM; 16.09.2011