Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cors에러 #8

Open
june0216 opened this issue Aug 10, 2024 · 0 comments
Open

cors에러 #8

june0216 opened this issue Aug 10, 2024 · 0 comments

Comments

@june0216
Copy link
Collaborator

june0216 commented Aug 10, 2024

코드 상 에러 해결

 if settings.BACKEND_CORS_ORIGINS:
        app.add_middleware(
            CORSMiddleware,
            allow_origins=[str(origin) for origin in settings.BACKEND_CORS_ORIGINS],
            allow_credentials=True,
            allow_methods=["*"],
            allow_headers=["*"],
        )

if문에서 오리진이 있으면 정책을 추가하도록 로직을 잘못짜서 if 조건을 없애면서 해결했다.
그리고 로컬에서 실행하면 origin이 달라도 cors allow가 되어 정상적으로 작동했다.
하지만 cloud run에 배포하여 테스트를 해보면 아직도 cors에러가 났다.

cloud 상 cors 에러 미해결

google could run으로 배포된 서버의 경우 코드 상 cors 설정을 해주어도 그대로 동작하지 않는 문제

@app.middleware("http")
async def add_cors_header(request: Request, call_next):
response = await call_next(request)
if response.status_code == 307: # 리디렉션 응답에만 헤더 추가
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT"
response.headers["Access-Control-Allow-Headers"] = "Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token"
return response

이렇게 추가를 해주어도 에러는 해결되지 않았다.
열심히 찾아본 결과 gateway 격인 google의 ESPv2을 사용하여 해결해보려고 한다.
https://cloud.google.com/endpoints/docs/openapi/set-up-cloud-run-espv2?hl=ko

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant