سلام
درتاپیک دیگه ای هم به این مشکل اشاره کرده بودم که شما نمیتونید درحالت معمول درخواستهای Cross domain بفرستید. ولی راه هایی برای حل این مشکل هم وجود داره. که در زیر هرکدوم رو توضیح میدم.
1. استفاده از serverside p r o x y.
2. استفاده از ابزار YQL.
3. بکارگیری XMLHttRequest و XDomainRequest با توجه به
Same Origin Policy.
روش یک رو توضیح نمیدم چون همونطور که گفتید، شما نمیخواید از این راه استفاده کنید. در روش دوم شما خیلی راحت میتونید توسط YQL و با استفاده از JSONP هر وبسایتی رو که بخواید نمایش بدید و محدودیت شماره 3 رو ندارید. و با توجه به اینکه درمثالتون میخواستید وبسایت گوگل رو بارگذاری کنید، این بهترین و کارآمد ترین روش ممکن هست. در
این آدرس شما یک مثال از نحوه ی بکار گیری این روش با استفاده از jQuery رو یاد میگیرید. با آموزشی که در امضای بنده قرار داره خیلی فرق نداره و حتی کمتر از اون هم هست!
البته ابزارهای دیگری هم مثل
ACD وجود دارن که از گفتن اونها صرف نظر میکنم.
روش سوم روشی هست که برای حل این مشکل در Ajax بوجود آمده. در این روش شما باید از سایت مورد نظر اجازه لازم رو داشته باشید تا درخواستتون رو ارسال کنید، یعنی وبسایت مورد نظر توسط یک header دامین شما رو شناسایی میکنه اگر دامین شما از قبل تعریف شده بود درخواست شما بدون هیچ مشکلی اجرا میشه ولی اگر تعریف نشده باشه دوباره به همین مشکل برخورد میکنید.
مثلا شما میتونید توسط محیط سمت سروری که ازش استفاده میکنید header زیر رو ست کنید.
کد:
Access-Control-Allow-Origin: http://www.google.com
در مثال بالا هردرخواست ای جکس ای که از دامین google برای وبسایت/صفحه مورد نظر شما ارسال بشه مجازه و اگر غیر از این بود غیر مجازه و اجازه ادامه کار به اون داده نمیشه. شما میتونید به غیر از دامین چندین دامین دیگه رو هم اضافه کنید، یا حتی تمامی دامین ها رو مجاز بشمارید با استفاده از ( * ) بجای آدرس دامین ها. البته شما باید کمی درباره اینکه چطور این هدر روست کنید تحقیق کنید، من فقط برای اینکه منظور رو برسونم به اینصورت هدر رو معرفی کردم.
یک نکته در رابطه با XDomainRequest و XMLHttpRequest: شئ XDomainRequest در IE8+ به بالا معرفی شده برای حل این مشکل ولی در بقیه ی مرورگرهای استاندارد شما میتونید با استفاده از همون شئ XMLHttpRequest بدون ایجاد تغییر در کدها از این قابلیت استفاده کنید.
موفق باشید.