mirror of
https://github.com/router-for-me/Cli-Proxy-API-Management-Center.git
synced 2026-02-19 19:20:49 +08:00
feat: enhance OpenAI model discovery with fallback to simple GET request for improved CORS handling and user notifications
This commit is contained in:
@@ -1275,9 +1275,25 @@ export async function refreshOpenAIModelDiscovery() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(context.endpoint, {
|
let response;
|
||||||
headers: context.headers || {}
|
let usedSimpleRequest = false;
|
||||||
});
|
|
||||||
|
try {
|
||||||
|
// 首先尝试正常的带自定义headers的请求
|
||||||
|
response = await fetch(context.endpoint, {
|
||||||
|
headers: context.headers || {}
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
// 如果fetch失败(通常是CORS预检失败),尝试简单GET请求
|
||||||
|
console.warn('Normal fetch failed, trying simple GET request:', error);
|
||||||
|
usedSimpleRequest = true;
|
||||||
|
response = await fetch(context.endpoint, {
|
||||||
|
method: 'GET',
|
||||||
|
mode: 'cors',
|
||||||
|
credentials: 'omit'
|
||||||
|
// 不发送自定义headers,避免触发OPTIONS预检
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error(`${response.status} ${response.statusText}`);
|
throw new Error(`${response.status} ${response.statusText}`);
|
||||||
@@ -1298,6 +1314,10 @@ export async function refreshOpenAIModelDiscovery() {
|
|||||||
if (!models.length) {
|
if (!models.length) {
|
||||||
this.setOpenAIModelDiscoveryStatus(i18n.t('ai_providers.openai_models_fetch_empty'), 'warning');
|
this.setOpenAIModelDiscoveryStatus(i18n.t('ai_providers.openai_models_fetch_empty'), 'warning');
|
||||||
} else {
|
} else {
|
||||||
|
if (usedSimpleRequest) {
|
||||||
|
// 如果使用了简单请求,提示用户
|
||||||
|
console.info('Models fetched using simple request (without custom headers)');
|
||||||
|
}
|
||||||
this.setOpenAIModelDiscoveryStatus('', 'info');
|
this.setOpenAIModelDiscoveryStatus('', 'info');
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user