درود مهندسین عیدتون مبارک
آقا میخام با axios یک درخواست ajax به یک سرور بزنم، اما با این ارور مواجه میشم:
اون آدرس که میبینین آدرس سرور و با postman کار میکنه دقیقا درخواست به همین ادرس
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://4.62.15.143:8004/api/service/getTypeService. (Reason: CORS request did not succeed).
و یک سوال دیگه دوستان این خط کد چیکار میکنه :
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
الان لازمه من بزارمش یا نه ؟
درود و عید شما هم مبارک مهندس! 🎉
ارور:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://4.62.15.143:8004/api/service/getTypeService. (Reason: CORS request did not succeed).
این یعنی مرورگر جلوی درخواست Ajax به اون آدرس رو گرفته چون:
تنظیم CORS در سرور
سرور باید هدر Access-Control-Allow-Origin رو به درخواستها اضافه کنه و اجازه بده که این مبدا (یا همه مبداها) درخواست بزنن. برای مثال:
Access-Control-Allow-Origin: *
یا
Access-Control-Allow-Origin: http://your-frontend-domain.com
همچنین ممکنه هدرهای دیگه مثل:
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization
نیاز باشه.
پروکسی کردن درخواستها
اگر دسترسی به سرور نداری یا نمیخوای سرور رو تغییر بدی، میتونی درخواستها رو از طریق یک سرور واسط (پروکسی) بفرستی که همون دامنه باشه.
در مرحله توسعه (dev) میتونی از تنظیمات webpack-dev-server یا ابزارهای مشابه برای پروکسی استفاده کنی
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟