JQuery Ajax-вызов, возвращающий «[объект XMLDocument]» - PullRequest
14 голосов
/ 28 апреля 2011

У меня есть 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;
?>

Так что я ожидал (и хотел), чтобы он высветил предупреждение «ОК», что и будет в других моих подпрограммах, но вместо этого появится [object XMLDocument].

Я что-то не так делаю? Или лучше с этим жить и разбирать XMLDocument?

Ответы [ 5 ]

25 голосов
/ 28 апреля 2011

Вам необходимо включить параметр типа данных в ваш вызов AJAX, чтобы указать, что вы просто ожидаете текстовый ответ:

function getSplashHelpVideos() {
    $.ajax({ 
        url: "include/get_help_videos.php",
        type: "POST",
        dataType: "text",
        success: function(data) {
            alert(data);
        }
    });
    return;
}
1 голос
/ 22 сентября 2012

Вы можете попробовать код ниже. Я только что протестировал его на Firefox 15.0.1, и он хорошо работает:

$.post("include/get_help_videos.php", function(data)
{
    alert(data);
}, "text");
0 голосов
/ 16 апреля 2015

измените тип ответа на html/text в файле get_help_videos.php

0 голосов
/ 22 сентября 2014

Вам просто нужно указать тип данных (который указывает браузеру, на который вы ожидаете ответа, только в указанном формате, например, в формате «текст»). В этом случае я проверил это в Firefox и Mozilla. И это работает ..:)

Проверьте ответ в Firefox / Mozilla - вы также можете проверить приходящий ответ после запроса AJAX ... выполните следующие шаги: нажмите F12 в Firefox / Mozilla -> перейдите на вкладку «Консоль» -> перейдите на вкладку «Ответ». :)

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()
0 голосов
/ 09 декабря 2013

попробуйте установить тип содержимого response в text / html , а затем сказать echo "ok" следующим образом:

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

У меня такая же проблема здесь , и она решается только таким образом, поскольку, когда мы не указываем тип содержимого ответа, каждый браузер обрабатывает ответ в другом формате, как и так.

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