Laravel + Vue - CORS errors - laravel

I am developing a Laravel API + Vue.js frontend app. Those 2 projects are on separate servers. I am having a CORS policy problem in production (on local I had, but I managed to fix it).
So basically, there are 2 errors right now. I am having this error:
Access to XMLHttpRequest at '--Laravel url--' from origin '--Vue url--' has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.
While my co-worker is getting this error:
Access to XMLHttpRequest at '--Laravel url--' from origin '--Vue url--' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
We tried a few things:
Configurating CORS on Laravel side:
setting CORS middleware - no effect
changing CORS config .php file - no effect
Configurating CORS on Vue side:
adding origin header to form - no effect
The response is also displaying in browser as being same-site although it is not.
Anyone can help? We have been searching for answer for nearly 3 days.

As Jazerix answered in a comment, going Sanctum is probably the right way because it has most stuff prepared.

Related

How to Solve cross origin domain access error on laravel and vue js

I am creating an app with larvel and vue js. It is in two separate directories. one is larvel and vue js and the other is vue. I am trying to access some apis from vue.js directory located at the second directory. On local it was working fine but on go daddy server it says:
Chrome:
Access to XMLHttpRequest at 'https://maindirectory(larvel)' from origin 'https://(second directory)vue.js' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
On Firefox it says:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://directory1/api/seller/login. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: 403.
I have tried almost every solution available on the internet:
i have placed these headers:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Authorization, Content-Type, X-Authorization,X-CSRF-Token,api_token');
header('Access-Control-Expose-Headers: X-Authorization, Authorization');
header('Access-Control-Allow-Methods:POST, GET, OPTIONS, PUT, DELETE');
In routes.php , api.php
and also tried setting headers in web.config and .htaccess.
But nothing helped. I have been stuck for four days. Any help would be appreciated.

Cors Option not constant

I'm having problem with CORS.
My Node.js Server with apollo-server-express(version 3.7)
My problem is CORS is not constant.
My React Project request api server and works well.
But sometimes api server response this error
Access to fetch at 'https://api.example.com/' from origin 'https://example.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Why same client request sometime response cors error?
Please Help.

CORS Issue on iframe to current Laravel route

I am pulling in an Iframe that has javascript included in it. I have installed the fruitcake cors package and set the config file to be wide open. I also added the "Access-Control-Allow-Origin' header to the xmlhttp request just in case because I am confused on who is actually denying the request. Here is the error I am getting -
Access to XMLHttpRequest at "https://site-that-i-am-posting-to" from origin "https://where-the-iframe-is-sourced-from" has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present of the requested resource.
Figured it out. I needed to add the correct request headers to the xmlhttprequest like this -
xhrapi.setRequestHeader('Origin', 'https://site-posting-from.com');
xhrapi.setRequestHeader('Access-Control-Request-Method', 'POST');
And then it worked. Thanks to anyone that tried to help!

Laravel Inertia, CORS with google login

am using ziggy with laravel and inertia, now using google login, i get the following error:
has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
here is my laravel routes:
Route::get('auth/{provider}', 'Auth\LoginController#redirectToProvider')
->name('login.provider');
Route::get('auth/{provider}/callback', 'Auth\LoginController#handleProviderCallback')
->name('login.callback');
how would i solve it please?
The response from the google service is missing the header Access-Control-Allow-Origin: * so the browser is blocking it.
Try to research a way to have that header included in the response.

XMLHttp request cannot load [link].Redirect from [link] to has been blocked by CORS policy in laravel 5

I am getting this error in laravel 5.I have added CORS as per this link http://en.vedovelli.com.br/2015/web-development/Laravel-5-1-enable-CORS/ but still getting the following error.All other solution tried but did not work.
XMLHttp request cannot load [link].Redirect from [link] to [link] has been
blocked by CORS policy.No 'Access-Control-Allow-Origin' header is
present on the requested source.Origin [link] is therefor not allowed
to access in laravel 5.
With the security reasons, browser is blocking different domain transfer. You can use CORS in Laravel 5 to fix this.
Further you can use Chrome extension postman(for testing) which is somehow not restricted by this policy.

Resources