Running mobile app using npx cap run andriod
has CORS error though http://localhost is allowed on Backend.
If I run website using dist folder using serve -l 80 -s dist
(website can be accessed http://localhost from chrome browser) and doesn’t have CORS error.
What is the actual error you are getting on the Android device? Also, are you running in the Android emulator or on a physical device?
Thank you @twestrick
I can’t inspect network request but the error happens as soon as I click login button. It happens on website as well (CORS issue) if I serve dist folder with different port.
I tried accessing deployed website in emulator browser and confirmed that network is available on emulator.
You can inspect the Android Emulator with Chrome Dev Tools by going here in Chrome - chrome://inspect/#devices
.
It might not be a CORS issue. It could be that the app cannot access your API/backend due to a firewall port being blocked or some other issue. I’ve also seen that Chrome gives a CORS error when it is actually something else.
Also assuming you haven’t changed the server
settings in the Capacitor Config overriding the hostname
or androidScheme
.
Thank you very much @twestrick. I inspected using Chrome Dev Tools and it was related to ERR_CLEARTEXT_NOT_PERMITTED. I resolved it by adding following in capacitor.json
"server": {
"cleartext": true
}
Cool. Hopefully you’ll be using HTTPS in production
You can also set specific domains that are allowed under clear text if you don’t want it wide open.
Here is a reference - Unable to carryout HTTP post on Android - #2 by twestrick
EDIT: Also, if you use live reload with ionic cap run
it auto adds clear text to your config temporarily as it runs as dev and not prod.
Just commenting here, seems like this has been updated to https://localhost
in android no longer http://localhost
(or at least for cap v6)
You are correct. Capacitor 6 defaults to https
. You can switch it back to http
if need be though. See Updating to 6.0 | Capacitor Documentation.