From 90127e98c08a736b3e01711baf87c3e13f97808d Mon Sep 17 00:00:00 2001 From: AI Bot Date: Mon, 14 Sep 2026 21:31:40 +0530 Subject: [PATCH] fix: Add backend proxy for GLB files to resolve CORS in ImageTo3DModal --- backend/server.js | 16 ++++++++++++++++ src/components/ImageTo3DModal.tsx | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/backend/server.js b/backend/server.js index 9faaaec..2e62225 100644 --- a/backend/server.js +++ b/backend/server.js @@ -246,6 +246,22 @@ app.post('/api/users/deduct-credit', authenticate, async (req, res) => { } }); +// 9.5 Proxy for downloading GLB files to fix CORS issues in frontend viewers +app.get('/api/proxy/glb', async (req, res) => { + const { url } = req.query; + if (!url) return res.status(400).json({ error: 'URL required' }); + try { + const response = await axios.get(url, { responseType: 'stream' }); + res.setHeader('Content-Type', 'model/gltf-binary'); + // Add CORS headers for the frontend to easily fetch it + res.setHeader('Access-Control-Allow-Origin', '*'); + response.data.pipe(res); + } catch (err) { + console.error('Proxy error:', err.message); + res.status(500).json({ error: 'Failed to proxy file' }); + } +}); + // 10. Upload file app.post('/api/upload', authenticate, upload.single('file'), (req, res) => { if (!req.file) return res.status(400).json({ error: 'No file uploaded' }); diff --git a/src/components/ImageTo3DModal.tsx b/src/components/ImageTo3DModal.tsx index 198691d..3d88a43 100644 --- a/src/components/ImageTo3DModal.tsx +++ b/src/components/ImageTo3DModal.tsx @@ -575,7 +575,7 @@ export const ImageTo3DModal: React.FC = ({ isOpen, onClose, {generatedModelUrl ? ( <>
- +