본문 바로가기
Mobile Programming

Flutter - has been blocked by CORS policy, 크롬 실행 시 발생 오류 해결방법.

by 맑은안개 2022. 2. 21.

현상

크롬에서 Flutter 빌드 시 아래와 같은 오류가 발생했다. 

════════ Exception caught by image resource service ════════════════════════════
Failed to load network image.
Image URL: https://i.pinimg.com/564x/89/31/36/8931368c1ec410f73ee0615b531ae32e.jpg
Trying to load an image from another domain? Find answers at:
https://flutter.dev/docs/development/platform-integration/web-images
════════════════════════════════════════════════════════════════════════════════

 

1. 맥북에서 IOS로 빌드할때는 해당 문제 없이 외부도메인의 리소스 접근이 허용된다. ( 문제 없음 )

2. 같은 소스를 윈도우에서 크롬으로 빌드. 

3. 크롬으로 빌드시 localhost[특정포트]로 웹서버 처럼 Flutter 실행 됨, 해당 과정에서 다른 도메인에 위치한 리소스 참조( CORS )로 인해 이미지 조회 오류 발생.

 

해결방안

스택오버플로우에 본 오류와 관련한 자세한 내용이 이미 있다.

아래의 순서대로 솔루션이 나와있다.

1- Go to flutter\bin\cache and remove a file named: flutter_tools.stamp

2- Go to flutter\packages\flutter_tools\lib\src\web and open the file chrome.dart.

3- Find '--disable-extensions'

4- Add '--disable-web-security'

위 내용을 dart pub 모듈을 사용해서 더 간단히 처리 할 수 있다. ( 필자는 이 방법으로 처리 )

 

dart pub global activate flutter_cors

+ flutter_cors 1.2.0
Downloading flutter_cors 1.2.0...
Downloading args 2.3.0...
Building package executables...
Built flutter_cors:flutter_cors.
Installed executable fluttercors.
Warning: Pub installs executables into C:\Users\***\AppData\Local\Pub\Cache\bin, which is not on your path.
A web search for "configure windows path" will show you how.
Activated flutter_cors 1.2.0.

! 설치 후 위의 Warning 처럼, flutter_cors 실행파일이 위치한 디렉토리가 환경변수 패스에 등록되지 않은 경우, 등록해준다. 

 

CORS 설정

C:\Users\***>fluttercors --disable
Patching D:\flutter/packages/flutter_tools/lib/src/web/chrome.dart
Deleting D:\flutter/bin/cache/flutter_tools.stamp
CORS is now disabled for Flutter's Chrome instance

C:\Users\***>fluttercors --enable
Patching D:\flutter/packages/flutter_tools/lib/src/web/chrome.dart
Deleting D:\flutter/bin/cache/flutter_tools.stamp
CORS is now enabled for Flutter's Chrome instance

명령 실행 후 빌드를 재실행한다. 

반응형