JQuery - простые запросы ajax не работают в IE - PullRequest
1 голос
/ 20 февраля 2012

Я использую jquery-1.7.1.min.js.

Простой пример:

<script language="JavaScript">
$(document).ready(function(){

    $.ajax({
        type: "POST",
        url: "/ajax/test.php",
        data: "name=John&location=Boston"
    }).done(function( msg ) {
        alert( "Data Saved: " + msg );
    }); 

});

</script>

Показывать предупреждающие сообщения в Opera, Chrome, FireFox, Safari, но не отображать предупреждающие сообщения в IE7-IE9. Где проблема? Как это решить?

Ответы [ 4 ]

2 голосов
/ 09 января 2013

Была такая же проблема.Решается добавлением заголовка в часть php (test.php)

header("Content-type: text/html; charset=windows-1251");
0 голосов
/ 20 февраля 2012

попробуйте включить dataType вместе с другими параметрами, которые вы указали.

<script type="text/javascript">

$(document).ready(function(){
    $.ajax({
        type: "POST",
        url: "/ajax/test.php",
        data: "name=John&location=Boston",
        dataType: 'json', // <-- OR HTML,XML etc
        success: function( msg ) {
            alert( "Data Saved: " + msg );
        }
    }); 
});

</script>
0 голосов
/ 20 февраля 2012

Еще один способ сделать это

<script type="text/javascript">
$(document).ready(function()
{
  $.ajax({
    type: "POST",
    url: "/ajax/test.php",
    data: "name=John&location=Boston",
    dataType: "text",
    complete: function(msg,status) {alert( "Data Saved: " + msg.responseText );}
  });
});
</script>

Другое решение, попробуйте следующее

<script type="text/javascript">
    $(document).ready(function()
    {
       $.post('/ajax/test.php',{name:'John',location:'Boston'},
         function(data) {alert( "Data Saved: " + data );}
      );
    });
</script>

И добавьте в заголовок test.php:

<?php
header("Cache-Control: no-cache");
header("Pragma: no-cache");
echo "It works !" // Be positive :-)
?>
0 голосов
/ 20 февраля 2012

Попробуйте изменить это значение, чтобы использовать параметр «success» вместо метода «done».Также я изменил атрибут «language» на «type»

<script type="text/javascript">

$(document).ready(function(){
    $.ajax({
        type: "POST",
        url: "/ajax/test.php",
        data: "name=John&location=Boston",
        success: function( msg ) {
            alert( "Data Saved: " + msg );
        }
    }); 
});

</script>
...