Internet Explorer и JQuery / AJAX $ .get () не работают - PullRequest
0 голосов
/ 01 февраля 2012

Я пытаюсь заставить IE8 (и другие IE) работать со страницей, которая использует метод JQuery / AJAX $ .get () для отображения значения из внешнего php-файла. Firefox, Chrome и Safari все работают нормально. Я свел мою большую проблему к этому маленькому примеру

Вот код JavaScript:

function get_number () {
    $.get(
        "test5.php",
        {},
        function (response) {
             var number = (response.number);
             $("#number_display").html(number);
        },
        "json"
    )
}

$(document).ready(function(){
    $('#get').click(function(){
       get_number ();
    });
})

и вставляет в следующий HTML-элемент:

<body style='text-align:center;'>
<p>Number = <span id='number_display'></span></p>
<button id='get'>Get Number</button>

Вот внешний код php:

$num = rand (1,10);
$result = array();
$result['number'] = $num;
echo json_encode($result);

Мой источник в библиотеке jquery http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js,, если это имеет значение.

Большое спасибо заранее за вашу помощь!

Ответы [ 2 ]

7 голосов
/ 01 февраля 2012

Вам не хватает двух точек с запятой, которые IE задушит.Я также отформатировал ваш код и сделал несколько других настроек:

function get_number() {
    // Append a "random" number to the query string to prevent caching:
    $.get("test5.php", { num: Math.random() }, function(response) { 
    // If you don't want to pass any data, you can omit the "data" parameter
        var number = response.number;
        $("#number_display").html(number);
    }, "json"); // <--- 
}

$(document).ready(function() {
    $('#get').click(function() {
        get_number();
    });
}); // <---

Редактировать: После вашего комментария у вас, скорее всего, есть проблема с кэшированием - IE может быть агрессивным в кэшированииGET запросов.Чтобы обойти это, вы можете добавить параметр к вашему запросу, который заставит IE снова подключиться к серверу .

0 голосов
/ 01 февраля 2012

То же самое с load () в IE.Я верю, что две цитаты тоже подойдут.

...