I have a problem after I have built and published my Flutter Web App.
My app is working perfectly when running it from the IDE , Android Studio, with Google chrom in Localhost:somePort.
What I have done:
-
Published my app to my web server and it is working on the web-site with my domain, i.e. www.example.com
-
Created a custom domain in Appwrite console settings for my Appwrite app as ar.example.com,
-
Created A record in the DNS settings of domain, the console of Appwrite is accessible through the browsert at https://ar.example.com/,
-
Created an SSL certification on the Appwrite server according to the docs.
-
Changed the Endpoint of Appwrite in my Flutter app to point to the new address: https://ar.example.com/v1
-
I have modified the .env file in appwrite folder of the Appwrite server to the example.com and www.example.com.
and still after all that , I can open the app in the browser, but is stops running when it tries to run the first command from the server, browser’s console gives me a CORS error as follows:
Access to XMLHttpRequest at 'https://ar.example.com/v1/account?#' from origin 'https://example.com/' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value 'https://localhost/' that is not equal to the supplied origin.
2
Answers
I have found the problem with the help of Appwrite support, hope this helps someone out there.
When creating a project in Appwrite you need to create a platform, in the project's console settings.
It appears that creating the platform as Flutter Web is causing this problem, since the hostname as defined in flutter is expecting a reverse host name, like com.domainName.hostName, and therefore recognized by the browser as a different domain than the client.
The solution is to create a Web platform instead of Flutter web platform.
Appwrite support team has promised they will carefuly look into it and fix what needed.
This error can occur if:
client.setProject()
is not calledclient.setProject()
is incorrectAlso, I’m not sure you should be doing this step:
The
APP_DOMAIN*
env vars for Appwrite should be set to your main Appwrite hostname.