PDA

View Full Version : کار نکردن این کد Ajax در مرورگر firefox در حالی که در مرورگر IE کار می کند



payam-source
جمعه 03 آذر 1391, 12:03 عصر
با سلام
من تازه دارم Ajax رو یاد میگیرم همین اول کار به یه مشکل برخوردم اونم اینه کاه با ActiveXObject ها فایل های مورد نیاز رو برای IE فراخوانی می کنم ولی برای مرورگر هایی مثل Firefox یا Oper و... تابع XMLHttpRequest() a کار می کنم که این تابع به نظرم کار نمیکنه و برنامه ام در Firefox کار نمی کنه.
اینم کد برنامه ام:

function gethttp()
{
var XMLHttp;
try
{
XMLHttp=new ActiveXobject("Microsoft.XMLHTTP");
}
catch(e)
{
try
{
XMLHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
if (typeof XMLHttpRequest != 'undefiend')
{
XMLHttp=new XMLHttpRequest();
}
}
}
return XMLHttp;
}

tem988
جمعه 03 آذر 1391, 12:46 عصر
سلام
برای فایرفکس باید یک کد دیگه استفاده کنی به این صورت

if(window.ActiveXObject){
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}

که if اولی مال ie هست و if دومی برای بقیه مرورگرها.
و اگر توجه کرده باشی زده Microsoft.XMLHTTP و فقط برای مرورگر که ماکروسافت طراحی کرده کار میده.

payam-source
جمعه 03 آذر 1391, 13:00 عصر
اینم باز جواب نداد
نمی دونم مشکل از چیه

tem988
جمعه 03 آذر 1391, 13:52 عصر
از این استفاده کن

function gethttp()
{
var XMLHttp;
if(window.ActiveXObject){
XMLHttp= new ActiveXObject("Microsoft.XMLHTTP");
} else if(window.XMLHttpRequest){
XMLHttp= new XMLHttpRequest();
}
return XMLHttp;
}

شاید متغیر ها رو اشتباه زدی چون متغیر XMLHttp شما با حروف بزرگ زدی من با حروف کوچک ولی این تایع که گذاشتم دقیقا همینو بزار 100% جواب میده.

payam-source
جمعه 03 آذر 1391, 13:58 عصر
دیگه خسته شدم هرچی کد بود تو اینترنت رو امتحان کردم نشد که نشد
امکان داره مشکل از سیستمم باشه آخه همین الان آخرین ورژن firefox رو هم نصب کردم نشد
یه فایل پیکر بندی چیزی نمی خواد؟

tux-world
جمعه 03 آذر 1391, 14:38 عصر
آره درست جواب میده ماله اون دوستمون. حالا چرا از این روش دارید استفاده میکنید؟ از وقتی ایجکس جیکوئری رو دیدم دیگه اصلا اینطوری کد نزدم

mrgraphy
جمعه 03 آذر 1391, 14:48 عصر
سلام دوست عزیز.
من یه نمونه کد به شما میدم که همه جا داره الان واسه من کار میکنه.
امیدوارم واسه شما هم کار بکنه.
این کد رو تو طراحی یه دفترچه تلفن چند سال پیش استفاده کردم.


var object = false;
if(window.XMLHttpRequest)
{
object = new XMLHttpRequest();
}else
{
object = new ActiveXObject("Microsoft.XMLHTTP");
}

function sndrd(data) {

object.open('POST', 'pcad.php?edit=true');
object.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
object.onreadystatechange = function() {
if (object.readyState == 4 && object.status == 200) {
document.getElementById('attbox').innerHTML = object.responseText;}}
object.send(data);
}


امیدوارم کمکتون کرده باشم.
موفق باشید.

tem988
جمعه 03 آذر 1391, 14:50 عصر
نه پیکر بندی نداره.
شاید از نسخه فایرفکست باشه یا اینکه ایراد پیدا کرده چون من توی همه مرورگرها تست کردم جواب داده حتی ie5
اینم کد جی کوئری

$.post("test.php", { post1: "value", post2: "value"},
function(data) {
alert(data);
});

جی کوئری خوبه فقط بعضی اوقات فقط یک اجاکس کوچیک میخوای بزاری یا یک کد کوچیک اگر بخوای از جی کوئری استفاده کنی 70 کیلوبایت به صفحت اضافه میشه.
ولی اگر توی سایتت زیاد جاوا استفاده میشه جی کوئری پیشنهاد میشه.

payam-source
جمعه 03 آذر 1391, 14:58 عصر
مرسی دوستان
من همین برنامه رو تو یه هاست upload کردم اینم آدرسشه
www.seaboard.ir/p
من که نتونستم با Ajax حلش کنم باید دست به دامن jquery شم

tux-world
جمعه 03 آذر 1391, 21:40 عصر
ولی اگر توی سایتت زیاد جاوا استفاده میشه جی کوئری پیشنهاد میشه.
به نظرم 70 کیلوبایت ارزش اینو داره که شما صفحه سایتتون پرقدرتر - انعطاف پذیر تر و حرفه ای تر بشه. جیکوئری خوراک حرفه ای هاست. یه نرم افزار نوشتم تموم بشه اطلاع رسانی میکنم خودتون میبینید چه کارایی میشه باهاش کرد با کمترین کد بیشترین استفاده رو خواهید برد

javadmomen72
پنج شنبه 12 بهمن 1391, 11:29 صبح
با سلام و وقت بخیر خدمت دوستان عزیز

واقعا در بین تمامی طراحان و برنامه نویسان وب ایران یک نفر نیست که مستقیم بگه چرا کد زیر در موزیلا جواب نمیده؟


function Gethttp()
{
var XMLHttp;
if(window.ActiveXObject){
XMLHttp= new ActiveXObject("Microsoft.XMLHTTP");
} else if(window.XMLHttpRequest){
XMLHttp= new XMLHttpRequest();
}
return XMLHttp;
}

geeking
یک شنبه 15 بهمن 1391, 00:29 صبح
دوست عزیز
اگر شما بفرمایید توی console چه اروری میده اونوقت خدمتتون عرض میکنم مشکل از کجاست!