ورود

View Full Version : مشکل ajax برای دریافت صفحه وب از هاست دیگر



hasanak852
پنج شنبه 21 شهریور 1392, 13:49 عصر
سلام دوستان
برای اینکه با ایجکس اطلاعات رو از یه هاست دیگه بگیریم باید از چه روشی استفاده کنیم؟ انگار روش معمول ایجکس جواب نمیده:


xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState!=4)
{
document.getElementById("myDiv").innerHTML='Loading...';
} else if (xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http://w3schools.com/ajax/demo_get.asp",true);
xmlhttp.send();


این کد اصلا کاری نمیکنه، یعنی xmlhttp.status برار صفره
ولی اگه url یه فایل داحل هاست باشه مشکلی نداره

jalil_gh
پنج شنبه 21 شهریور 1392, 19:32 عصر
به دلایل امنیتی برای مدتها این امکان وجود نداشت تا اینکه با ملاحظاتی این امکان به html5 اضافه شد.
برای اینکه شما بتونید از یه هاست دیگه با ajax اطلاعات دریافت کنید یا بفرستید اول باید مرورگر از این امکان پشتیبانی کنه که اکثر مرورگرهای جدید از این امکان پشتیبانی میکنن. دوم اینکه هاست دیگه هم باید به هاست شما این اجازه رو بده.

hasanak852
پنج شنبه 21 شهریور 1392, 21:38 عصر
ممنون
خب روشش رو میگید چجوری...؟

jalil_gh
جمعه 22 شهریور 1392, 15:10 عصر
اینجا (http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/) راجع بهش توضیح داده.

hasanak852
جمعه 22 شهریور 1392, 18:44 عصر
ممنون داداش، روش حل این مشکل رو نفهمیدم ولی سررشته رو دادی تا رسیدم به این (http://stackoverflow.com/questions/7564832/how-to-bypass-access-control-allow-origin) و روش حل مشکل خودمو یافتم
توی فایلی که رو هاست دیگه آپلود شده باید این کد رو بذاریم:


header('Access-Control-Allow-Origin: *');

یعنی اجازه بدیم تا ایجکس بگیرتش!