Internet Explorer ajax isteği şey dönmüyor

1 Cevap php

Benim kayıt işleminin sonunda size bir kupon kodu girebileceğiniz bir ödeme ekranına almak, ve veritabanından kupon getirir ve bunun önce toplam uygulanabilir böylece sayfaya döndürür bir AJAX çağrısı var paypal teslim edilir. Firefox, Chrome, Safari ve büyük çalışır, ancak Internet Explorer, hiçbir şey olmuyor. JQuery işlevi döndürülen (data) null görünüyor.

jQuery Post

function applyPromo() {
var enteredCode = $("#promoCode").val();
$(".promoDiscountContainer").css("display", "block");
$(".promoDiscount").html("<img src='/images/loading.gif' alt='Loading...' title='Loading...' height='18' width='18' />");
$.post("/ajax/lookup-promo.php", { promoCode : enteredCode },
   function(data){
        if ( data != "error" ) {
            var promoType = data.getElementsByTagName('promoType').item(0).childNodes.item(0).data;
            var promoAmount = data.getElementsByTagName('promoAmount').item(0).childNodes.item(0).data;
            $(".promoDiscountContainer").css("display", "block");
            $(".totalWithPromoContainer").css("display", "block");
            if (promoType == "percent") {
                $("#promoDiscount").html("-" + promoAmount + "%");
                var newPrice = (originalPrice - (originalPrice * (promoAmount / 100)));
                $("#totalWithPromo").html(" $" + newPrice);
                if ( promoAmount == 100 ) {
                    skipPayment();
                }
            }
            else {
                $("#promoDiscount").html("-$" + promoAmount);
                var newPrice = originalPrice - promoAmount;
                $("#totalWithPromo").html(" $" + newPrice);
            }
            $("#paypalPrice").val(newPrice + ".00");
            $("#promoConfirm").css("display", "none");
            $("#promoConfirm").html("Promotion Found");
            finalPrice = newPrice;
        }
        else {
            $(".promoDiscountContainer").css("display", "none");
            $(".totalWithPromoContainer").css("display", "none");
            $("#promoDiscount").html("");
            $("#totalWithPromo").html("");
            $("#paypalPrice").val(originalPrice + ".00");
            $("#promoConfirm").css("display", "block");
            $("#promoConfirm").html("Promotion Not Found");
            finalPrice = originalPrice;
        }
   }, "xml");

}

Corresponding PHP Page

include '../includes/dbConn.php';

$enteredCode = $_POST['promoCode'];

$result = mysql_query( "SELECT * FROM promotion WHERE promo_code = '" . $enteredCode . "' LIMIT 1");

$currPromo = mysql_fetch_array( $result );

if ( $currPromo ) {
    if ( $currPromo['percent_off'] != "" ) {
        header("content-type:application/xml;charset=utf-8");
        echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
        echo "<promo>";
        echo "<promoType>percent</promoType>";
        echo "<promoAmount>" . $currPromo['percent_off'] . "</promoAmount>";
        echo "</promo>";
    }
    else if ( $currPromo['fixed_off'] != "") {
        header("content-type:application/xml;charset=utf-8");
        echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
        echo "<promo>";
        echo "<promoType>fixed</promoType>";
        echo "<promoAmount>" . $currPromo['fixed_off'] . "</promoAmount>";
        echo "</promo>";
    }
}
else {
    echo "error";
}

Ben IE kodu çalıştırdığınızda, ben diyor Javascript hattı üzerinde bir javascript hatası alıyorum

var promoType = data.getElementsByTagName('promoType').item(0).childNodes.item(0).data;

İşte IE hata ayıklayıcı alt text bir ekran görüntüsü

Update

Ben on line bir kesme noktası ayarlamak, ve aslında bu hat üzerinde hatası karşılaşır:

if ( data != "error" ) {

Ben kesme sonra kodun geri kalanını çalışmasına izin Ancak, bu İŞLERİ. Ben ajax isteği gerçekten bitmeden belki IE geri çağırma işlevi çalıştıran düşünüyorum, bu yüzden PHP henüz sonuç dönmedi? Bunu test edebilirsiniz herhangi bir yolu var mı?

1 Cevap

Sorun çözüldü.

Sorunu PHP XML belgesini döndürmeden olmasıydı, ve bir nesne bir dize eşit olamaz beri satır veri! = "Hata", bir xml belge için geçerli değildi. Ben tüm olguların XML döndürmek php değişti ve farklı okumak için jQuery değişti ve şimdi güzel çalışıyor. Teşekkürler bana bunu konuşmak yardım için herkes.