Почему простой поиск в Google через getJSON не всегда работает? - PullRequest
0 голосов
/ 15 сентября 2011

Этот простой веб-поиск через Google API шаток. Иногда он возвращает 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" />

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

1 Ответ

0 голосов
/ 16 сентября 2011

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

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);
         });
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...