Konuyu görüntüle
IUCODERS FORUM > Programlama > Diğer (COBOL,asp php js..) > IE'da AJAX ile POST problemi
Yazar
unforgiven


avatar

Kayıt: 12.06.2008
13.11.2008-16:20 #52483
daha önce senkron request ile ilgili bir başlık açmıştım fakat artık tamamen asenkron request ile çalışmaya karar verdim. problemim diğer başlıktakinden farklı olduğu için yeni başlık açma gereği duydum.

aşağıda kullandığım örnek bir kod parçası var:
function Ekle(email)
{
	var myaddress = email.value;
	var values = "email="+myaddress;
	var xmlHTTP = getXMLHTTP();
	xmlHTTP.open("POST", "ekle.php");
	xmlHTTP.onreadystatechange = function() {
		if(xmlHTTP.readyState==4) {
			if(xmlHTTP.status==200) {
				// Bu kısımda problem yok
			}
		}
	}
	xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHTTP.setRequestHeader("Content-length", values.length);
	xmlHTTP.setRequestHeader("Connection", "close");
	xmlHTTP.send(values);
}

// Asagidaki fonksiyonu onceden iucoders'tan bir arkadastan almistim
function getXMLHTTP() { //fuction to return the xml http object  
	var xmlHTTP = null
	if (window.XMLHttpRequest) {
		xmlHTTP = new XMLHttpRequest();
		if (xmlHTTP.overrideMimeType) {
			xmlHTTP.overrideMimeType('text/xml; charset=iso-8859-9')
		}
	}
	else if (window.ActiveXObject) {
		try {
			xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				try {
					xmlHTTP = new ActiveXObject("MSXML2.XMLHTTP.3.0");
				} catch (e) {
					window.alert("Tarayıcınız AJAX desteklemiyor!");
				}
			}
		}
	}
	return xmlHTTP;
}


bu kod firefox'ta düzgünce çalışırken IE'da tutarsız çalışıyor. aynı kod farklı denemelerde aşağıdaki 3 farklı sonucu verebiliyor

1) xmlHTTP.readyState 1'de kalıyor (yani xmlHTTP.send metodu hic calismiyor)

2) request gerçekleşirse yanıt olarak HTTP 12030 hatası geliyor

3) kod sorunsuz bir şekilde çalışıyor


kodda böyle bir tutarsızlığa neden olabilecek bi şey bulamadım. en azından sabit bir sonuç alsam ona göre hareket edebilirdim. kod aynı ama farklı denemelerde bahsettiğim 3 sonuçtan biri geliyor. firefox'da her şey normal ama IE'da bu kadar tutarsız çalışıyor.

bu konuda yardımcı olabilecek arkadaşlara şimdiden teşekkürler.





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
13.11.2008-23:23 #52489
Bence çok özel bir durum yok ise kendin js kodu yazma. Bu tip işler iiçin javascript kutuphaneleri var ve tarayıcı destekleri cok geniş.
http://docs.jquery.com/Ajax/jQuery.get
Ama illa da yazacam diyorsan iucoders ın kodları içerisinde bir çalışan bir js kodu var. Onu alabilirsin.





N/A
Yazar
unforgiven


avatar

Kayıt: 12.06.2008
14.11.2008-17:54 #52500
yanıtın için teşekkür ederim. ben GET konusunda bir sıkıntı yaşamıyorum zaten. kodlar güzelce çalışıyor. POST konusunda da sadece IE'da böyle bir tutarsızlık var. onun dışında POST işleminde de bir problem yaşamıyorum.

hazır kütüphane konusuna gelince, deneyeceğim ama sonuçta onlar da nesnenin aynı metodlarını kullanmıyorlar mı? bunların dışında özel soket komutları yoksa bir işe yarayacağından pek umudum yok. sadece belki olası problemlere (ki bu olay bence problem bile değil, IE'da bir hata olduğunu düşünüyorum) karşı akla gelmeyen önlemler almış olabilirler, tek umudum bu. teşekkürler.





Yazar
unforgiven


avatar

Kayıt: 12.06.2008
15.11.2008-18:54 #52528
çok sayıda deneme yapamadım ama jquery ile POST yaparken IE şimdilik (ilk 10-15 denemeye göre) tutarlı ve doğru çalışıyor. öneri için teşekkürler.





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb