# Google!Реализация Ajax - не работает с jQuery - PullRequest
0 голосов
/ 17 августа 2011

Хорошо, я бьюсь головой о стол и, очевидно, упускаю что-то простое.

Попытка сделать мои страницы Ajax сканируемыми для Google. Однако это не работает.

Кстати, контент, который я вызываю, содержит ссылки и служит основной навигацией.

    <script type="text/javascript">
      // Test script
     $.ajaxSetup({
    type: "GET",  
    url: "UpdateResults7.php#!",   
    /*dataType: "text/html",  eliminated moveing from jq 1.4.1 to 1.5*/
    beforeSend:  function(){$("#txtResult").html("Pending"); },
    success: function(html){       $("#txtResult").html(html);     }
    });  // close $.ajaxSetup

    function dynamic_Select( state)  
    {  
    var myData = {pass_type: "<?php echo $pass_type ?>", pass_state: state};
    //$.post("setSession.php", {pass_state: state });
    $.ajax({  
            data: myData });  // close $.ajax
    } // close dynamic_Select   
    </script>

Заранее спасибо!


ОК, спасибо за вашу помощь. Вот где я стою: 1.) Мои страницы были реализованы с #! и AJAX работает нормально 2.) Я зашел в firefox, скопировал и сохранил HTML-версию файла 3.) Я поместил какой-то скрипт в начало моего php-файла, чтобы обнаружить «? _Escaped_fragment_ =» и перенаправить в html-файл.

Однако, когда я проверяю fetchbot от Google, он не отображает какой-либо контент, сгенерированный AJAX. Я даже загрузил «? _Escaped_fragment_ =» в адресную строку, чтобы подтвердить, что он загружает правильную копию html, и это действительно так.

Вот код вверху страницы:

    if (isset($_GET['_escaped_fragment_'])){
header(sprintf("Location: solidgreen-partners.html", $insertGoTo));
$path = $_SERVER['PHP_SELF'];
//generateStaticPHP($path);
    }

Последние две строки не работают. Я пытался создать снимок HTML на лету, как описано http://code.google.com/web/ajaxcrawling/docs/html-snapshot.html

Еще раз спасибо за вашу помощь!

1 Ответ

4 голосов
/ 17 августа 2011

Не похоже, что у вас есть правильное представление о том, как это должно быть реализовано.

Общедоступные (или ориентированные на поисковую систему) ссылки на вашем сайте должны использовать синтаксис hashbang(#!) где это уместно.Это указывает Google (и, возможно, другим поисковым системам) на то, что ваш сайт можно сканировать с помощью AJAX.Затем робот Googlebot запросит эти страницы, используя параметр GET с именем _escaped_fragment_.Ваше приложение должно принять этот параметр и использовать его для возврата снимка HTML в робот Googlebot.

Таким образом, URL вашего сайта, такой как:

http://mydomain.com/mypage.html#!somevar=somevalue

, будет фактически запрашиваться роботом Google как:

http://mydomain.com/mypage.html?_escaped_fragment_=somevar=somevalue

Затем ваше приложение принимает, что значение _escaped_fragment_ анализирует параметры, создает и затем возвращает соответствующий HTML.

Ничто из этого, однако, не относится к фактическим вызовам AJAXсделать внутренне на вашем сайте.В чем ваша проблема здесь.

См .: http://code.google.com/web/ajaxcrawling/docs/getting-started.html для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...