diff --git a/src/components/media-loader.js b/src/components/media-loader.js index 1b67a41e686f7df0c7c438eedda299efff1ddcaa..d71801161631a4985ad3e127b5f05c9b330b919e 100644 --- a/src/components/media-loader.js +++ b/src/components/media-loader.js @@ -1,13 +1,20 @@ import { getBox, getScaleCoefficient } from "../utils/auto-box-collider"; import { resolveMedia } from "../utils/media-utils"; -const fetchContentType = async url => fetch(url, { method: "HEAD" }).then(r => r.headers.get("content-type")); +const fetchContentType = async (url, token) => { + const args = { method: "HEAD" }; + + if (token) { + args.headers = { Authorization: `Token ${token}` }; + } + + return fetch(url, args).then(r => r.headers.get("content-type")); +}; AFRAME.registerComponent("media-loader", { schema: { src: { type: "string" }, token: { type: "string" }, - contentType: { type: "string" }, resize: { default: false } }, @@ -64,8 +71,7 @@ AFRAME.registerComponent("media-loader", { const { raw, origin, meta } = await resolveMedia(url); console.log("resolved", url, raw, origin, meta); - const contentType = - this.data.contentType || (meta && meta.expected_content_type) || (await fetchContentType(raw)); + const contentType = (meta && meta.expected_content_type) || (await fetchContentType(raw, token)); let blobUrl; if (token) { const response = await fetch(raw, { diff --git a/src/utils/media-utils.js b/src/utils/media-utils.js index 697612d530e848a3307a142f792ccd142cade41d..770b69819495680d2b012571273c861bdde9264a 100644 --- a/src/utils/media-utils.js +++ b/src/utils/media-utils.js @@ -45,9 +45,8 @@ export const addMedia = (src, resize = false) => { upload(src) .then(response => { const src = response.raw; - const contentType = response.meta.expected_content_type; const token = response.meta.access_token; - entity.setAttribute("media-loader", { src, contentType, token }); + entity.setAttribute("media-loader", { src, token }); }) .catch(() => { entity.setAttribute("media-loader", { src: "error" });