diff --git a/pages/search/[id].vue b/pages/search/[id].vue index a438befd52bd3ad9ab571f0c061b772e95c8d03b..a41c655411ee160c2df3740cb314215e83d1c758 100644 --- a/pages/search/[id].vue +++ b/pages/search/[id].vue @@ -191,16 +191,24 @@ function handleFormatSource (source) { } }) } +function handleSetNoPermission () { + askingData.value = {} + useRequestError(403) +} const handleFormFetchData = (fetchData) => { let message = {} try { message = JSON.parse(fetchData) } catch(error) { } if (Object.keys(message).length === 0) return - const { meta, choices, error } = message + const { meta, choices, error, code } = message nextTick(() => { scrollToView() }) + // 处理403 + if (error && code === 403) { + handleSetNoPermission() + } // 不处理异常数据 if (!meta) { handleStopGenerate() diff --git a/utils/fetchEventSource.js b/utils/fetchEventSource.js index 31ce8faf9583cc79be9b26486b4e3bee5a21dafe..3ed85820759163908cca98806b1bc08f6d6216a2 100644 --- a/utils/fetchEventSource.js +++ b/utils/fetchEventSource.js @@ -1,5 +1,6 @@ import { fetchEventSource } from '@microsoft/fetch-event-source' const BASE_URL = 'https://gpu-pod656e861afe3d944d6b3ce77e-7862.node.inscode.run' +// class PermissionError extends Error { } export default (url, { onmessage, onerror, controller, params, onopen }) => { const token = useCookie('token') fetchEventSource(`${BASE_URL}${url}`, { @@ -14,6 +15,10 @@ export default (url, { onmessage, onerror, controller, params, onopen }) => { const status = response.status useRequestError(status) onopen(status) + // todo + // if ([401, 403].includes(status)) { + // throw new PermissionError(); + // } }, onmessage (info) { onmessage(info)