Почему у меня возникает проблема с CORS в Flutter web, несмотря на то, что я установил CORS в бэкенде django
Я разрабатываю веб-приложение на Flutter, которое должно делать запросы к бэкенду Django. Однако при попытке сделать запрос я сталкиваюсь с ошибкой CORS. Сообщение об ошибке выглядит так:
Access to XMLHttpRequest at '<API_URL>' from origin 'http://localhost:63730' 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.
Я уже настроил CORS в настройках Django следующим образом:
INSTALLED_APPS = [
...
'corsheaders',
...
]
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]
CORS_ORIGIN_ALLOW_ALL = True
Несмотря на это, я все равно получаю ту же самую ошибку CORS. Интересно, что у меня есть другие приложения, построенные на React и Vue, которые могут делать запросы к тому же бэкенду Django, не сталкиваясь с ошибками CORS.
Я не уверен, почему мое веб-приложение Flutter сталкивается с ошибками CORS, а мои приложения React и Vue - нет. Любая помощь будет очень признательна.
NB: Я использую пакет Dio для выполнения запроса следующим образом:
class DioWrapper {
Dio _dio = Dio();
Dio get dio => _dio;
DioWrapper() {
_dio.options = BaseOptions(
baseUrl: Uri.encodeFull(
"https://<my_api_url>/api"),
receiveDataWhenStatusError: true,
sendTimeout: const Duration(milliseconds: 60 * 1000),
receiveTimeout: const Duration(milliseconds: 60 * 1000),
// connectTimeout: 60 * 1000,
validateStatus: (code) {
return true;
},
);
}
}
А затем запрос:
final response = await dio.post<Map<String, dynamic>>('/auth/token/',
data: jsonEncode(
{Config.username: username, Config.password: password}));