jQuery Ajax无法在IE 9或更高版本中运行

时间:2015-05-25 12:33:55

标签: javascript jquery ajax internet-explorer internet-explorer-9

我将jQuery与ajax一起使用,它适用于除IE 9或更早版本之外的所有浏览器。 jQuery本身可以工作,但不是ajax调用。我使用以下代码:

HTML:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

JS:

if ($('#page-home').length) {
    var $targetDivOffers = $('#results-recent-offers');

    var query = {};
    query = {
        status: 'all',
        category: 'all',
        limit: 3
    };

    // first load recent gesuche
    query.type = 1;

    $targetDivOffers.html('');

    $.ajax({
        type: "POST",
        url: "system/process-get-adverts.php",
        data: query,
        dataType: 'JSON',
        cache: false
    }).done(function (html) {
        $('.ajax-loader').show().delay(300).promise().done(function () {
            $('.ajax-loader').fadeOut().promise().done(function () {
                $targetDivOffers.html(html.results);
            });
        });
    }).fail(function (jqxhr, textStatus, error) {
        var err = textStatus + ", " + error;
        $targetDivOffers.html("Request Failed: " + err);
        });
}

我的代码有什么原因导致它无法在IE9或更早版本中运行?

更新

我试图最小化我的代码,以检查我是否正确地集成了jQuery。以下代码仍然无法在IE 9或更低版本中运行:

<!doctype html>
<!--[if lt IE 7]>
<html class="no-js lt-ie9 lt-ie8 lt-ie7" lang=""> <![endif]--> <!--[if IE 7]>
<html class="no-js lt-ie9 lt-ie8" lang=""> <![endif]--> <!--[if IE 8]>
<html class="no-js lt-ie9" lang=""> <![endif]--> <!--[if gt IE 8]><!-->
<html class="no-js" lang=""> <!--<![endif]-->

<head>
    <meta title="Test">
</head>

<body>

<p id="test"></p>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="assets/js/jquery-1.11.1.min.js.js"><\/script>')</script>

<script type="text/javascript">
    $.ajax({
        url: 'http://api.joind.in/v2.1/talks/10889',
        data: {
            format: 'json'
        },
        error: function () {
            $('#info').html('<p>An error has occurred</p>');
        },
        dataType: 'jsonp',
        success: function (data) {
            var $title = $('<h1>').text(data.talks[0].talk_title);
            var $description = $('<p>').text(data.talks[0].talk_description);
            $('#test')
                .append($title)
                .append($description);
        },
        type: 'GET'
    });
</script>

</body>

</html>

这段代码有什么问题?

1 个答案:

答案 0 :(得分:0)

可能是Jquery没有正确加载。 尝试如下:

<!--[if lt IE 9]>  
    <script src="jquery-1.9.0.js"></script>  
<![endif]-->  
<!--[if (gte IE 9) | (!IE)]><!-->  
    <script src="jquery-2.0.0.js"></script>  
<!--<![endif]-->

另一个原因可能是jQuery / IE没有正确地urlencode双引号并在URL(“”)中显示而不是编码双引号(%22)。