PHP için bir AJAX çağrısından garip JavaScript sözdizimi hatası

3 Cevap php

Uzun zaman okuyucu, ilk kez posteri. Herhangi bir yardım büyük beğeni topluyor.

Ben JavaScript kullanarak bir AJAX sorgusu hazırlanmış olması. Komut dosyası düzgün çalışır, ve arayüz ne istediğiniz, ancak Firefox bana vurulduktan PHP dosyası ile ilgili bir hata mesajı veriyor. Bu PHP bir sözdizimi hatası var önermek gibi görünüyor çünkü, garip, ama bu hiç mantıklı değil. Bu hatadır:

Error: syntax error Source File: http://www.mysite.com/includes/ajax.php?action=checkpsudo&value=fd Line: 1, Column: 1 Source Code: yes

Ve JavaScript altındadır. Herkes bana yardımcı olabilir misiniz? Teşekkürler.

var ajaxobject = createajaxobjectObject();

function createajaxobjectObject() {
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        ajaxobject = new XMLHttpRequest();
        if (ajaxobject.overrideMimeType) {
            // set type accordingly to anticipated content type
            ajaxobject.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            ajaxobject = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                ajaxobject = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!ajaxobject) {
        alrt('Cannot create XMLHTTP instance');
        return false;
    }
    return ajaxobject; 
}

function checkpsudo(value) {    

    if (value == "") {
        document.getElementById('feedback').innerHTML = "Please select a psudonym";
        document.getElementById('feedback').className = "fail";
        document.getElementById('done').disabled=true;  
    } else {
        ajaxobject.onreadystatechange = function() { check(); };              
        ajaxobject.open('GET', '/includes/ajax.php?action=checkpsudo&value='+value, true);
        ajaxobject.send(null);  
    }


}

function check() {
    if (ajaxobject.readyState == 4) {

        //IF WE GOT OUR CHAT XML BACK CORRECTLY
        if (ajaxobject.status == 200) {             

            var response = ajaxobject.responseText;

            var value = document.getElementById('psudoentry').value;

            if(response=='no') {
                document.getElementById('feedback').innerHTML = "'" + value + "' is already being used";
                document.getElementById('feedback').className = "fail";
                document.getElementById('done').disabled=true;
            } else {
                document.getElementById('feedback').innerHTML = "'" + value + "' is available";
                document.getElementById('feedback').className = "success";
                document.getElementById('done').disabled=false;
            }                                          

        } else {
            alert('There was a problem with the request.');
        }
    }
}

3 Cevap

Benim ilk içgüdüsü bu JS ile değil XML PHP script tarafından çıkış olmak bir sorun değil olmasıdır.

PHP bir uyarı veya bir uyarı üreten edilebilir gibi sorta görünüyor - o zaman oluşturulan XML ilk şey, bir XML öğesi değil, dize "Notice: vs vs", tarayıcı neden şikayet etmek ne o gidiyor beklediği biçimini eşleşmiyor. Benim durumumda, bazen bu her şeyi kırar ve bazen belirgin bir etkisi yoktur. Ben sunucu üzerinde bildirimleri ve uyarıları kapatın istiyorum - ve bu sorunu kadar temizler, sonra nerede aşağı izlemeye başlamak için biliyorum.

Neden mantıklı değil ki? Ajax çağrısı hata sayfası geri alacak daha php dosyası bir sözdizimi sorunu varsa sunucu dışarı tükürür ve FF yanıtı ayrıştırmak çalışır ederken FF hata konsolunda görünecektir