PDA

View Full Version : خطا در ajax



farags
چهارشنبه 11 فروردین 1389, 16:10 عصر
با سلام
این تابع در firefox به درستی کار می کند ولی در مرورگر IE در خط text = xmlHttp.responseText; خطای object does not support this property and method را میدهد لطفا من را راهنمایی کنید .

var xmlHttp;
function viewDoctorName(code,token,id) {
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null) {
alert ("Browser does not support HTTP Request");
return;
}
var url="bin/showDoctorName.php?token="+token+"&code="+code;
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState==1) {
document.getElementById("subMenuPanel").innerHTML="<img src=\"images/wait.gif\" />";
}
if(xmlHttp.readyState==4) {
text = xmlHttp.responseText;
document.getElementById("subMenuPanel").innerHTML = text;
}
}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function GetXmlHttpObject() {
var xmlHttp=null;
try {
xmlHttp=new XMLHttpRequest();
}
catch (e) {
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

امیـرحسین
پنج شنبه 12 فروردین 1389, 01:11 صبح
کد به نظر درست میاد. بجای Msxml2.XMLHTTP از MSXML2.XMLHTTP در تابع GetXmlHttpObject استفاده کنید.
من با ActiveX آشنایی ندارم ولی هرجا دیدم با حروف بزرگ بود. شاید بخاطر این باشه.

eAmin
پنج شنبه 12 فروردین 1389, 12:50 عصر
کد به نظر درست میاد. بجای Msxml2.XMLHTTP از MSXML2.XMLHTTP در تابع GetXmlHttpObject استفاده کنید.
من با ActiveX آشنایی ندارم ولی هرجا دیدم با حروف بزرگ بود. شاید بخاطر این باشه.
مشکل از ActiveX نیست، چون اگر به مشکل بر می خورد حتما باید بلاک catch اجرا می شد.
نیازی نیست تمامی حروف با کلمات بزرگ نوشته بشن.

در کد شما هیچ ایرادی دیده نشد فقط در تابع viewDoctorName یک argument بلااستفاده بنام id وجود داشت، احتمالا با حذف اون کد شما بدرستی کار می کنه.
در ضمن سعی کنید برای تعریف متغیر حتما از کلمه ی کلیدی var استفاده کنید، متغیر text به اینصورت تعریف نشده بود.

موفق باشید.

farags
پنج شنبه 12 فروردین 1389, 16:06 عصر
با تشکر از راهنمایی شما
مشکل از درست تعریف نکردن متغیر text بود که با گذاشتن var درست شد .