Investigate CORS proxy failure
The CORS proxy is failing despite being enabled, resulting in REST API and database connection errors. Investigate the cause of the failure.
This commit is contained in:
@@ -24,16 +24,25 @@ try {
|
||||
flowType: 'implicit',
|
||||
},
|
||||
global: {
|
||||
fetch: (url, options) => {
|
||||
// CORS 디버깅을 위한 사용자 정의 fetch
|
||||
// 커스텀 fetch 구현
|
||||
fetch: (...args) => {
|
||||
// 첫 번째 인자는 URL 또는 Request 객체
|
||||
const urlOrRequest = args[0];
|
||||
|
||||
// URL 로깅 및 디버깅
|
||||
let url = typeof urlOrRequest === 'string' ? urlOrRequest : urlOrRequest.url;
|
||||
console.log('Supabase fetch 요청:', url);
|
||||
return fetch(url, options).then(response => {
|
||||
console.log('Supabase 응답 상태:', response.status);
|
||||
return response;
|
||||
}).catch(err => {
|
||||
console.error('Supabase fetch 오류:', err);
|
||||
throw err;
|
||||
});
|
||||
|
||||
// 기본 fetch 호출
|
||||
return fetch(...args)
|
||||
.then(response => {
|
||||
console.log('Supabase 응답 상태:', response.status);
|
||||
return response;
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('Supabase fetch 오류:', err);
|
||||
throw err;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -6,9 +6,10 @@ export const getSupabaseUrl = () => {
|
||||
if (storedUrl) {
|
||||
// CORS 프록시 설정 확인
|
||||
const useProxy = localStorage.getItem('use_cors_proxy') === 'true';
|
||||
if (useProxy && storedUrl.startsWith('http://')) {
|
||||
// CORS 프록시 URL로 변환
|
||||
return `https://corsproxy.io/?${encodeURIComponent(storedUrl)}`;
|
||||
if (useProxy) {
|
||||
// CORS 프록시 URL로 변환 (URL 구조 개선)
|
||||
const cleanUrl = storedUrl.trim();
|
||||
return `https://corsproxy.io/?${encodeURIComponent(cleanUrl)}`;
|
||||
}
|
||||
return storedUrl;
|
||||
}
|
||||
@@ -39,8 +40,11 @@ export const isCorsProxyEnabled = () => {
|
||||
|
||||
// 온프레미스 연결을 위한 설정 도우미 함수
|
||||
export const configureSupabase = (url: string, key: string, useProxy: boolean = false) => {
|
||||
// URL 정리 (앞뒤 공백 제거)
|
||||
const cleanUrl = url.trim();
|
||||
|
||||
// 로컬 스토리지에 설정 저장
|
||||
localStorage.setItem('supabase_url', url);
|
||||
localStorage.setItem('supabase_url', cleanUrl);
|
||||
localStorage.setItem('supabase_key', key);
|
||||
localStorage.setItem('use_cors_proxy', useProxy.toString());
|
||||
|
||||
|
||||
@@ -42,7 +42,11 @@ export const testSupabaseConnection = async () => {
|
||||
// 1. REST API 접근 테스트
|
||||
try {
|
||||
console.log('REST API 테스트 시작...');
|
||||
const apiUrl = `${results.proxyUrl}/rest/v1/`;
|
||||
// 정확한 REST API 엔드포인트 구성
|
||||
const apiUrl = results.proxyUrl.endsWith('/')
|
||||
? `${results.proxyUrl}rest/v1/`
|
||||
: `${results.proxyUrl}/rest/v1/`;
|
||||
|
||||
console.log('REST API 테스트 URL:', apiUrl);
|
||||
|
||||
const response = await fetch(apiUrl, {
|
||||
|
||||
Reference in New Issue
Block a user