jQuery AJAX-вызовы (.get, .post., .load и т. д.), возврат данных и проблема IE - PullRequest
0 голосов
/ 14 июня 2011

Это не вопрос сам по себе, так как мое замечание при работе с jQuery 1.3.2

Я потратил довольно много времени на исследование, поиск и окончательное тестирование (следовало бы сделать это в первую очередь) ивот что я нашел:

Допустим, у вас есть небольшой файл (назовите его example.php):

 <div>Hello world</div></div>

И в основном файле вы делаете этот конкретный вызов

<div class="result"></div>
<script type="text/javascript">
$(document).ready(function(){
  $.get('example.php', function(data){
     $('.result').html(data);
  });
});
</script>

Теперь это будет работать во всех браузерах, кроме IE8 / 7 (не проверял его в IE9).Это потому, что полученные данные не анализируются как HTML, хотя он получает их должным образом.Единственное, что нужно сделать для решения этой проблемы, - это удалить тег дополнения из файла "example.php".Это решит проблему.Это может показаться простым, но когда у вас есть сложные * .php / * .html файлы при вызове get, это может стать довольно запутанным и кошмарным решением.

ПРИМЕЧАНИЕ: Я пытался найти в стеке поток для этой конкретной проблемы, но не нашел определенного ответа или решения для этого.Следовательно, я разместил эту конкретную проблему и ее решение.Считая себя весьма NOOB при этом, если кто-то укажет, что объяснение этому уже есть, скажите мне, и я удалю этот пост.

Ответы [ 2 ]

0 голосов
/ 14 июня 2011

Если вам нужен больший контроль над вызовом ajax с использованием jQuery, вы должны использовать сам вызов $ .ajax и манипулировать параметрами. Конкретно установка dataType: в «текст»

http://api.jquery.com/jQuery.ajax/

0 голосов
/ 14 июня 2011

try

$('.result').html("");
$('.result').append(data);

это может удалить недействительные теги, но рассмотрите возможность использования iframe для контейнера .result

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