PDA

بازدید نسخه کامل شده : Permision Denied xmlhttp.open


artin
07-21-2006, 04:46 PM
سلام
این کد در حالت عادی بدون مشکل کار می کنه
یعنی اگه فایل درخواستی مثلا aa.php یا هر چیزی بزنی کار می کنه و همون جایی که فایل اصلی load شده می گرده
حالا من می خوام یه سایت دیگه وصل بشه مثلا google.com
ولی وقتی http://google.com می زنم می زنه permission denied

این جریانش چیه ؟

فایل اصلی

<script src="xmlhttp.js" type="text/javascript">
xmlhttp=false
</script>

<script type="text/javascript">
example1()

function example1() {
xmlhttp.open("GET", "http://google.com",true);
xmlhttp.setRequestHeader("MessageType", "CALL")




xmlhttp.onreadystatechange=function() {

if (xmlhttp.readyState==4) {

//print result
alert(xmlhttp.responseText)

}
}
xmlhttp.send(null)
}
</script>


xmlhttp.js

var xmlhttp

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp=false;
}


}



if (!xmlhttp && window.createRequest) {
try {
xmlhttp = window.createRequest();
} catch (e) {
xmlhttp=false;
}
}

Mercury
07-22-2006, 12:38 AM
رو چه بروزری این اررور رو میده . من کل کدتو نخوندم اما میتونم یکی از کتابخونه هایی که واسه ای جکس نوشتم بهت بدم ( مربوط میشه به همینی که تو امضام هست ). کارش رو تست کردم و مشکل نداره . کد شما هم نباید مشکل داشته باشه !

ببینم رو لوکال کار میکنی ؟ ie رو اسکرپت های لوکال خیلی حساسسیت نشون میده . تا هر کار میخایی بکنی . بلوک میکنه !

artin
07-22-2006, 01:24 AM
فرقی نکرد
تو غیر لوکال هم همینه
تو همه بروزها کار نمی کنه ولی هیچی نمیشه اما تو IE اررور میده
همون اررور javascript پایین که باز می کنی می گه فلان لاین Permissn denied

ولی وقتی فایل خالی یا آدرس رو با Http بزم اما دومین همون باشه بدون مشکل کار می کنه !

فقط به دومین دیگه نمی زاره وصل بشه


من فقط یه کد خیلی ساده می خوام که فقط html یه سایت خواص رو بگیره
و طوری باشه که بتونم چند بار این کار رو بکنم یعنی یه function ساده باشه

الان این هم سادست ولی نمی دونم چرا به سایت دیگه وصل نوشد

Nendoke
07-22-2006, 09:40 AM
این یه مشکل طبیعیِ , خود برازر ها جلوی دست رسی به یه دامین دیگه رو از طریق xml Http Request می گیرن , IE تو خودش Debugger برای جاوااسکریپت داره برای همین خطا رو نشون می ده , اگه برای FF هم Developer Toolbar نصب کنی یه خطای مشابه رو تولید می کنه ,


حالا برای چی جلوش رو می گیرن ؟ چونکه تو وقتی که با این متود درخواست رو می فرستی پاسخ رو اول از داخل اسکریپت دریافت می کنی , چون سایتی که درخواست براش فرستاده شده بصورت طبیعی پاسخ رو می برمی گردنه همه Cookie ها و اطلاعات شخصی کاربر رو هم توش قرار می ده . با یه روش نسبتا ساده ایی می شه همه Cookie ها رو کشید بیرون , برای همین یه Browser های مدرن جلوش رو می گیرن .


راه حل اش چیه ؟ اینه که همه چی رو از داخل سرور خودت بگیری , یه اسکریپت خیلی ساده PHP درست می کنی :

script.php?url=URL_Value


با یه readfile ساده اطلاعات URL رو داخل این صفحه نمایش می دی .
XML Request فقط تو دامنه که ازش Load بشه کار می کنه , حتی www هم مهمه , اگه اسکریپت بخواد از : http://yourdomain.com یه صفحه رو از http://www.yourdomain.com صدا بزنه باز هم برازر جلوش رو می گیره .

artin
07-22-2006, 10:25 AM
عجب !
پس این google search که با ajax هست چجوری کار می کنه ؟
که هر کی م یخواد م یتونه مثلا تو سایتش بزاره ؟

Nendoke
07-22-2006, 11:09 AM
اسکریپت اش رو بذار تا بهت بگم , احتمالا باید یه iframe درست کنه . با متود Ajax نمی شه از یه دامین به یه دامین درخواست فرستاد .

Mercury
07-22-2006, 09:04 PM
چه جالب . ارتین میگی با ff مشکل نداره ؟ پس ff اسیب پزیره که ؟!! :D

Nendoke
07-23-2006, 12:29 AM
FF قبل از 1.0.1 بود فکر کنم می ذاشت از دامین به دامین درخواست بدیم , ولی حل اش کردن .

Version اش دقیقا یادم نیست .

artin
07-26-2006, 11:33 PM
عجب پس راهی نیست !
آخه سرور side نمی خوام باشه
همش باید از طرف کلاینت باشه

Mercury
07-29-2006, 12:30 PM
میتونی صفحه ای درست کنی که از سایت خودت مطالب اون لینکو بار کنه