درود دوستان
ببینید توی 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>
استفاده کنی
امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟