Ajax调用(获取,发布)不在IE中工作

时间:2014-11-06 19:55:36

标签: ajax internet-explorer caching

IE正在推动我的香蕉。我试着在这里寻找答案,我发现的答案似乎也没有起作用。

我正在尝试读取php文件的输出,将其写入div(使用jQuery生成),然后每分钟检查php输出。我已经在所有浏览器中测试了php文件,并且它工作正常,所以它绝对是js的东西。这是我到目前为止所尝试的内容(他们在所有内容中工作但是IE )。

php将输出:

<p>Example alert text</p>

现在,我有:

jQuery('<div/>', {
        id: 'emerg-alert-system'
        }).prependTo( "body" ).css({
        "background": "#b40000", 
        "color": "white", 
        "display": "block", 
        "max-width": "100%", 
        "font-family": "Arial,sans-serif",
        "font-size": "1rem",
        "text-align": "center",
        "text-transform": "uppercase",
        "letter-spacing": "1px"
    });

function get_alert() {

    $.ajaxSetup( { cache: false } );

    var request = $.ajax({
        url: "http://example.com/alert.php",
        type: "GET",            
        dataType: "html",
        cache: false
    });

    request.done(function(msg) {
        $("#emerg-alert-system").html(msg);         
    });

};

setInterval( get_alert, 1*60*1000 );

get_alert();

我已经尝试过使用和不使用ajaxSetup / ajax缓存:false,我也尝试过使用$ .get()和$ .post()(换一个用于另一个)

function get_alert() {

    $.ajaxSetup( { cache: false } );

    $.get('http://example.com/alert.php', function(data) {
        $( "#emerg-alert-system" ).html( data );
    });

};

setInterval( get_alert(), 1*60*1000 );

get_alert();

唯一产生的是:

<div id="emerg-alert-system"> </div>

还有什么我应该尝试的吗?

1 个答案:

答案 0 :(得分:0)

所以我的同事和我重新做了这件事,最终让它按照我们的喜好工作。这是新的JS:

jQuery(document).ready(function () {

    jQuery('<div/>', {
        id: 'emerg-alert-system'
    }).prependTo( "body" ).css({
        "background": "#b40000", 
        "color": "white", 
        "display": "block", 
        "max-width": "100%", 
        "font-family": "Arial,sans-serif",
        "font-size": "1.2em",
        "text-align": "center",
        "text-transform": "uppercase",
        "letter-spacing": "1px",
        "line-height": "1.5"
    });

    function get_alert () { 
        $.ajaxSetup({ cache: false });
        $.get('http://example.com/alert.php').done(function ( data ) {
            $("#emerg-alert-system").html(data);
            if( !$.trim( $('#emerg-alert-system').html() ).length ) {
                $("#emerg-alert-system").css({ "display": "none" });
            }
        });
    }

    window.onload = function () {
        get_alert();
        setInterval( get_alert, 1*60*1000 );
    }

});