Ajax没有将值返回到chrome,而是返回FF

时间:2010-06-04 07:48:07

标签: jquery google-chrome

我是Ajax的新手,并且一直在关注JQuery.com的教程。我已经设置了一个非常简单的脚本,当单击一个h2元素时,调用一个php脚本,返回一些用于替换当前h2内容的JQuery。以下是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 :(得分:0)

请检查chrome中变量xml的内容。如果它是空的,请尝试设置 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');