Ajax не возвращает значения в Chrome, но в FF - PullRequest
0 голосов
/ 04 июня 2010

Я новичок в Ajax и следую учебному пособию от JQuery.com. Я установил очень простой скрипт, при нажатии на элемент h2 вызывается скрипт php, который возвращает некоторый xml, который JQuery использует для замены текущего содержимого h2. Ниже приводится содержание javascript:

$(document).ready(function () {

$('h2').click(function(e){
  e.preventDefault();
  var user = $(this);
  $.post("ajax.php", {id: "1"}, function(xml) {
    // format result
    var result = [
      "Thanks for rating, current average: ",
      $("average", xml).text(),
      ", number of votes: ",
      $("count", xml).text()
    ];
    // output result
    $(user).html(result.join(''));
  } );

});
});

А вот скрипт php:

<?php 
$av = 5;
$xml = "<ratings><average>$av</average><count>$av</count></ratings>";
header('Content-type: text/xml'); 
echo $xml; 
?>

В Firefox я получаю ожидаемое: «Спасибо за оценку, текущее среднее: 5, количество голосов: 5»

но в Chrome я получаю: "Спасибо за оценку, текущее среднее:, количество голосов:"

Как видите, Chrome не распознает что-либо переданное обратно в xml. Я запускаю это на обычной учетной записи хостинга Dreamhost без каких-либо дополнений, сделанных мной на сервере.

Любая помощь будет принята с благодарностью.

С уважением Лука

1 Ответ

0 голосов
/ 04 июня 2010

проверьте содержимое переменной xml в chrome. Если он пуст, попробуйте установить dataType явно:

$.post("ajax.php", {id: "1"}, function(xml) {
// format result
var result = [
  "Thanks for rating, current average: ",
  $("average", xml).text(),
  ", number of votes: ",
  $("count", xml).text()
];
// output result
$(user).html(result.join(''));
}, 'xml');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...