diff --git a/src/components/services/widgets/service/portainer.jsx b/src/components/services/widgets/service/portainer.jsx index d29ec0d06..ed3d184a6 100644 --- a/src/components/services/widgets/service/portainer.jsx +++ b/src/components/services/widgets/service/portainer.jsx @@ -25,7 +25,7 @@ export default function Portainer({ service }) { return await res.json(); }; - const { data: containersData, error: containersError } = useSWR(buildApiUrl(`docker/containers/json`), fetcher); + const { data: containersData, error: containersError } = useSWR(buildApiUrl(`docker/containers/json?all=1`), fetcher); if (containersError) { return ; diff --git a/src/pages/api/proxy.js b/src/pages/api/proxy.js index df72887e3..1a8b18116 100644 --- a/src/pages/api/proxy.js +++ b/src/pages/api/proxy.js @@ -26,10 +26,7 @@ export default async function handler(req, res) { rejectUnauthorized: false, }); - const [status, data] = await httpsRequest({ - hostname: url.hostname, - path: url.pathname, - port: url.port, + const [status, contentType, data] = await httpsRequest(url, { agent: httpsAgent, method: req.method, headers: headers, @@ -41,12 +38,10 @@ export default async function handler(req, res) { }), }); + res.setHeader("Content-Type", contentType); return res.status(status).send(data); } else { - const [status, data] = await httpRequest({ - hostname: url.hostname, - path: url.pathname, - port: url.port, + const [status, contentType, data] = await httpRequest(url, { method: req.method, headers: headers, body: @@ -57,6 +52,7 @@ export default async function handler(req, res) { }), }); + res.setHeader("Content-Type", contentType); return res.status(status).send(data); } } diff --git a/src/utils/http.js b/src/utils/http.js index 8d69eb068..eb0dfed97 100644 --- a/src/utils/http.js +++ b/src/utils/http.js @@ -1,9 +1,9 @@ import https from "https"; import http from "http"; -export function httpsRequest(params) { +export function httpsRequest(url, params) { return new Promise(function (resolve, reject) { - var request = https.request(params, function (response) { + var request = https.request(url, params, function (response) { let data = ""; response.on("data", (chunk) => { @@ -11,7 +11,7 @@ export function httpsRequest(params) { }); response.on("end", () => { - resolve([response.statusCode, data]); + resolve([response.statusCode, response.headers["content-type"], data]); }); }); @@ -23,9 +23,9 @@ export function httpsRequest(params) { }); } -export function httpRequest(params) { +export function httpRequest(url, params) { return new Promise(function (resolve, reject) { - var request = http.request(params, function (response) { + var request = http.request(url, params, function (response) { let data = ""; response.on("data", (chunk) => { @@ -33,7 +33,7 @@ export function httpRequest(params) { }); response.on("end", () => { - resolve([response.statusCode, data]); + resolve([response.statusCode, response.headers["content-type"], data]); }); });