دریافت response header با استفاده از ماژول axios

- 2 هفته پیش
توسط سید محمد حسین موسوی آپدیت شد
Sepehr Sanaee ( 100 تجربه )
2 هفته پیش

سلام من میخواستم با استفاده از axios هدر set_cookie از ریسپانس دریافت کنم اما مرورگر ها به من اجازه نمیدن و این ارور میدن :
Access to XMLHttpRequest at 'https://devapi.neolyze.com/authentications/login' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

Arash Moradi ( 750 تجربه )
2 هفته پیش

سلام این پلاگین روی کروم نصب کن و فهال برای برطرف کردن مشکل CROS هستش
https://chrome.google.com/webstore/detail/moesif-orign-cors-changer/digfbfaphojjndkpccljibejjbppifbc

اگر نشد در خواست از یک دامنه مجازی که روی xampp ساختی بفرست به جای localhost:3000

Sepehr Sanaee ( 100 تجربه )
2 هفته پیش

@arash.moradi89
ممنون بابت پاسختون ولی
الان این مشکل روی کروم من حل میشه ولی وقتی که من اینو روی سرور با یه دامین دیگه بزارم این مشکل برای کاربر های سایتم به وجود نمیاد ؟؟؟

Arash Moradi ( 750 تجربه )
2 هفته پیش

اگر Request از دامنه خودتون به ساب دامنتون بفرستید مشکل پیش نمی یاد ولی فکر کنم
اگر گواهی ssl دامنه wildcard نباشه یا هنگام ایجاد لایسنس ssl تون برای subdomin لایسنس نگرفته باشید این مشکل پیش بیاد

سید محمد حسین موسوی ( 12143 تجربه )
2 هفته پیش

این مشکل ربطی به axios نداره و اگر بخوای با jquery ajax و بقیه راه ها هم درخواست بدی باز به این مشکل بر می خوری. علتش هم اینه که اگر سرور و کلاینت شما جدا از هم باشه این مشکل پیش می یاد. بطور پیش فرض شما اجازه ندارید درخواست هاتون رو از origin یا همون سایت دیگه ای بفرستید. اگر دوتاشون داخل یه سایت باشن مشکل حل می شه و درست کار می کنه. یعنی اگر قالبتون رو اپلود کنید روی سرور مشکلتون حل می شه و کاربرها مشکلی نخواهند داشت و کد به درستی برای همه اجرا می شه. اما یه زمانی شما می خواید مثلا api ای که می نویسید رو از یه سایت دیگه صدا بزنید و یا از کلاینت های مختلف مثل موبایل درخواست بدید و یا حتی روی سیستم خودتون با api های سرور کار کنید و کار رو توسعه بدید و تست کنید، اونجا باید خصوصیت Access-Control-Allow-Origin رو تغییر بدید و ادرس سایت دوم یا * به معنی هر منبع که می خواد درخواست بفرسته قرار بدید.
برای اینکه این مشکل رو تو پروژه خودتون حل کنید می تونید مثلا همچین چیزی رو سرچ کنید:
php Access-Control-Allow-Origin
و یا حتی متن خطای مورد نظر رو جست و جو کنید و کانفیگ پروژه تون رو درست کنید تا مشکل حل بشه

برای ارسال پاسخ باید وارد سایت شوید