آیا شی xmlhttprequest و متدهای اون توی همه مرورگرها شناخته می شه؟

idocs

Member
آیا شی xmlhttprequest و متدهای اون مخصوصا متدهای readystate، readystatechange توی همه مرورگرها شناخته می شه؟
 

eAmin

Well-Known Member
در مرورگر IE از ورژن 7 به پایین باید از ActiveX استفاده کنید، و در سایر مرورگرها مانند: Safari, Chrome, Firefox, Opera و IE7+ شی XMLHttpRequest بخوبی پشتیبانی میشه.
البته در IE 7 تا 8 اگر از شی XMLHttpRequest استفاده کنید نمیتونید در خواستهای لوکال رو handle کنید و باید برای اینکار از ActiveX کمک بگیرید. دقت کنید که این فقط برای درخواستهای لوکال هست و در درخواستهای آنلاین به مشکلی بر نمیخورید.

رویداد onreadystatechange هم بصورت کامل در تمامی مرورگرها پشتیبانی می شه به همراه پراپرتی readyState.

موفق باشید.
 

mani_t_a

New Member
سلام به همه دوستان . من تازه شروع به كار با آژاكس كردم . به مشكل بر خوردم ولي !! ممنون ميشم يكي جوابمو بده و مشكلمو حل كنه .

راستش مشكلم تو ارسال به سروز از طريق متد POST هستش . با متد GET درست كار ميكنه در تمام مرورگرها اما براي متد POST در موزيلا عمل نميكنه .
كد ها در 2 صفحه مثلا index.php و data.php هستن . كدهاي صفحه ايندكسم :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AJAX</title>


<script language="javascript" type="text/javascript">
if ( typeof XMLHttpRequest != "undefined" )
{
var Ajax = new XMLHttpRequest();
}
else if ( window.ActiveXObject )
{
var aVersions = ["MSXML2.XMLHTTP.5.0","MSXML.XMLHTTP.4.0","MSXML.XMLHTTP.3.0","MSXML.XMLHTTP","Microsoft.XMLHTTP"];
for ( var i = 0 ; i < aVersions.length; i++ )
{
try {
var Ajax = new ActiveXObject(aVersions) ;
} catch (oError) { }
}
}
if ( !Ajax )
{
alert("cannot install ajax");
}

function getdata(dsource,did,d1,d2)
{

var obj = document.getElementById(did);


Ajax.open('POST',dsource,null);
Ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded')


Ajax.onreadystatechange = function ()
{

if(Ajax.readyState==4)
{
if (Ajax.status==200)
{
obj.innerHTML = Ajax.responseText;
}
}
}


Ajax.send("d1=" + d1 + "&d2=" + d2);

}
</script>

</head>
<body>


<form>
<input type="button" value="start..." onclick="getdata('data.php','myDIV','text1','text2')" />
</form>

<div id="myDIV">
</div>

</body>
</html>

و كدهاي صفحه ديتا :
<?php

echo $_REQUEST['d1'];
echo $_REQUEST['d2'];

?>
اين كد در ie خوب عمل ميكنه اما در موزيلا نتونستم ازش جواب بگيرم . كجاي كار كم داره يا اشتباهه كه درستش كنم !!
 
آخرین ویرایش:

farik

Well-Known Member
با سلام..نحوه تعریف این شی در ff,ie با هم فرق داره..تو گوگل بزنید میاد...
 

جدیدترین ارسال ها

بالا