بزرگترین جشنواره سال راکت! ۵۰ درصد تخفیف شگفت انگیز!
کلیک کن!درود دوستان
ببینید توی vue cli وقتی روتر استفاده میکنی یه مشکلی هست
مثلا بخوای کاربرو توی یه سایت دیگه ریدارکت کنی مثلا www.site2.com و اگه سایت خودت باشه www.site1.com اگه از تک a استفاده کنی اون جایی که تورو میفرسته این آدرسه www.site1.com/www.site2.com انگار دقیقا اون آدرسو بعد از آدرس خودت میاره و تو سایت خودت میمونی و نمیتونی کاربرو به سایت دیگه ای بفرستی و از طرفی نمیتونی یک دکمه ای بسازی که اگه کاربر رو دکمه ای کلیک کرد یه چیزیو دانود کنه و دلیلش هم همونی که الان گفتم
حالا چطوری این مشکلات رو حل کنم؟؟
سلام امیرمهدی جان🖐
امیدوارم حالت خوب و عالی باشی✨
مشکلی که شما توضیح دادهاید به نظر میرسد که با CORS (سیاستهای امنیتی مرورگر برای درخواستهای متقابل دامنه) و یا تنظیمات روتر در Vue Router مرتبطه . برای حل این مشکلات، میتونید اقدامات زیر را انجام بدین :
تنظیمات Vue Router:
در فایل router.js
یا فایل مشابهی که از Vue Router برای تنظیم مسیرها استفاده میکنی ، مطمئن شوکه برای انتقال به دیگر دامنهها، از تنظیمات mode: "history"
استفاده میکنی به این ترتیب، URLها بدون #
ایجاد میشوند و از اشکالات CORS درخواستهای متقابل دامنه کم میشه میشود. مثلا:
const router = new VueRouter({
mode: "history",
routes: [
// مسیرهای خودتان
]
});
تنظیمات CORS بر روی سرور:
اگر شما قصد دارید از یک دامنه به دامنه دیگری درخواست HTTP کنی ، باید سرور مقصد (دامنه دیگر) تنظیمات CORS مناسبی داشته باشه . باید در سرور مقصد، سرور API یا سایت مقصد، فایلهای تنظیمات CORS را تنظیم کنی تا اجازه درخواستهای از دامنههای مختلف را بده.
استفاده از تگ <a>
برای لینکهای خارجی:
برای لینکهایی که به دامنههای دیگر اشاره دارن و تغییر دامنه لازمه ، بهتر است از تگ <a>
به جای استفاده از Vue Router استفاده کنی . این تگ به طور پیشفرض به صفحه مربوط به آدرس داده شده منتقل میشه و مشکلی با CORS ایجاد نمیکنه .
مطمئن بشین که تنظیمات Vue Router و سرور شما مناسب باشن و به این ترتیب مشکلات CORS برای درخواستهای متقابل دامنه حل بشن . همچنین برای دکمهها و اقداماتی که نیاز به انتقال به دامنه دیگر دارند، از تگ <a>
استفاده کنی
امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟