jQuery Ajax调用返回'[object XMLDocument]'

时间:2011-04-27 21:01:02

标签: javascript jquery ajax

我有一个HTML页面,我想用Ajax填充。我已经从其他页面复制了代码(这些代码都在PHP中,我不确定这是否重要),并且它正在返回[object XMLDocument]。在其他页面(PHP版本)中,我得到了我在例程中打印出的任何内容。

这就是我所拥有的:

index.html -

<html> ... </html>
<script>
$(document).ready(function() {
 getSplashHelpVideos();
});
</script>

在javascript文件中 -

function getSplashHelpVideos() {
 $.ajax({ 
   url: "include/get_help_videos.php",
   type: "POST",
   success: function(data) {
    alert(data);
   }
 });
 return;
}

在get_help_videos.php中(显然这只是试图找出其工作原理的临时代码) -

<?php
 session_start();
 echo 'OK';
 return;
?>

所以我期待(并希望)它弹出一个提示“OK”的警告,这就是它在我的其他例程中会做的事情,但它会弹出[object XMLDocument]而不是。

我做错了吗?或者最好与它一起生活,并解析XMLDocument

5 个答案:

答案 0 :(得分:25)

您需要在AJAX调用中包含datatype参数,以指示您只是期望文本响应:

function getSplashHelpVideos() {
    $.ajax({ 
        url: "include/get_help_videos.php",
        type: "POST",
        dataType: "text",
        success: function(data) {
            alert(data);
        }
    });
    return;
}

答案 1 :(得分:1)

您可以尝试以下代码。我刚刚在Firefox 15.0.1上测试过,它运行良好:

$.post("include/get_help_videos.php", function(data)
{
    alert(data);
}, "text");

答案 2 :(得分:0)

首先尝试将响应的内容类型设置为 text / html ,然后像这样说 echo“ok”

header('Content-type: text/html');

我遇到了同样的问题here并且它只是以这种方式解决了,因为当我们没有指定响应的内容类型时,每个浏览器都会以不同的格式处理响应。

答案 3 :(得分:0)

将您的响应类型更改为get_help_videos.php文件中的html/text

答案 4 :(得分:-1)

您只需要告诉数据类型(指向您希望以上述格式进行响应的浏览器,例如:“text”格式)。 在这种情况下,我在firefox和mozilla中测试了它。它的工作原理.. :)

检查firefox / Mozilla中的响应 - 您还可以在ajax请求后验证即将发生的响应...按照以下步骤 - 在firefox / mozilla中按F12 - &gt;转到“控制台”标签 - &gt;转到“响应”子选项卡。 :)

function GetEmployeeListWS_REST() {        
            jQuery.ajax({
            url: "http://localhost:8080/RESTDemo/rest/hello/helloXML",
            async: false,
            type: 'GET',
            contentType: "text/xml; charset=utf-8",                
            dataType: "text",
             crossDomain: true,
            //data: packet,
            error: function (xhr, textStatus, errorThrown) { alert(xhr + ' ' + textStatus + '' + errorThrown); },
            success: function (response, status, xmlData) {

                $("#EmployeeDetailsWs").text(response);                    
            }
        });

    } // ends : fun()