Ajax: Internet Explorer hata

1 Cevap php

Ben bir giriş formunun üzerinde çalışıyorum. Aşağıdaki gibi Ajax kodu:

/* ---------------------------- */
/* XMLHTTPRequest Enable */
/* ---------------------------- */

    function createObject() 
    {
    var request_type;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
    request_type = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
    request_type = new XMLHttpRequest();
    }
    return request_type;
    }

    var http = createObject();

    /* -------------------------- */
    /* LOGIN */
    /* -------------------------- */
    /* Required: var nocache is a random number to add to request. This value solve an     Internet Explorer cache issue */
    var nocache = 0;
    function login() {
    // Optional: Show a waiting message in the layer with ID ajax_response
    document.getElementById('login_response').innerHTML = "<img src='images/ispinner.gif'/>"
    // Required: verify that all fileds is not empty. Use encodeURI() to solve some issues    about character encoding.
    var email = encodeURI(document.getElementById('emailLogin').value);
    var psw = encodeURI(document.getElementById('pswLogin').value);
    // Set te random number to add to URL request
    nocache = Math.random();
    // Pass the login variables like URL variable
    http.open('get', 'login.php?email='+email+'&psw='+psw+'&nocache = '+nocache);
    http.onreadystatechange = loginReply;
    if(window.XMLHttpRequest)
    {
    http.send(null);
    }
    else
    {
    http.send()
    }
    }
    function loginReply() {
    if(http.readyState == 4){ 
    var response = http.responseText;
    document.getElementById('login_response').innerHTML = response;
    }
    }

Kod google chrome ve mozilla firefox kesinlikle çalışıyor. Bu sadece IE 5 ve IE 6 üzerinde çalışmaz. Neden bilemiyorum?

Update: kodunda birkaç uyarı kutuları uygulanmaktadır. Internet explorer yürütme ötesine geçmez öğrendim

document.getElementById('login_response').innerHTML = "<img src='images/ispinner.gif'/>"

Form değerleri almak için diğer bazı sözdizimi var mı?

1 Cevap

Sen niteliğin "=" işareti sorgu dizesi için 'nocache' etrafında bazı ekstra boşluk var. IE değil bu işler nasıl emin. Muhtemelen büyük olasılıkla hata kaynağı değildir "% 20" ler, onları değiştirir, ama yine de hatalı biçimlendirilmiş bulunuyor.

Tüm nesneleri düzgün oluşturulur alıyorsanız emin olmak için IE Geliştirici Araç Çubuğu / debug sizin JavaScript incelemek olabilir?

Ayrıca istek önbelleğe alma hakkında benim yorum bkz. Belki de sadece o çalışma görünmüyor böylece boş bir yanıt döndürdü bir istek önbelleğe alınmış vardı.

Hiç orada alırsa görmek için geri arama fonksiyonu bazı uyarısı () 'ın koyarak deneyin.