亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Express 在獲得授權的情況下提供 javascipt 文件

Express 在獲得授權的情況下提供 javascipt 文件

嚕嚕噠 2022-08-27 15:12:35
在我的客戶端javascript中,如果用戶獲得授權(使用firebase身份驗證),我會請求私有內容,如下所示:firebase.auth().onAuthStateChanged(user => {  if (!user) {    ui.start("#firebaseui-auth-container", uiConfig);  }  if (user) {    import("/private.js").then(module => {      console.log(module.default);    });  }});所有用戶都通過托管網址的公共 firebase 提供服務,但只有當用戶獲得授權時,他們才會請求私有內容。我的重定向來處理這個問題:index.htmlfirebase.json "rewrites": [      {        "source": "**",        "function": "app"      }    ]我正在努力建立一個基于firebase函數的express后端來為javascript服務。(我還沒有添加身份驗證檢查,因為我想讓它工作,只是先為js服務)。我的 firebase 函數如下所示:const fs = require("fs");const functions = require("firebase-functions");const express = require("express");const app = express();app.get("/private.js", (req, res) => {  fs.readFile("private.js", "utf8", function (err, data) {    if (err) throw err;    res.send(data)  });});exports.app = functions.https.onRequest(app);但是,當用戶獲得授權并且客戶端嘗試動態導入時,我收到以下錯誤:。如何正確設置MIME類型以提供js文件?private.jsFailed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec
查看完整描述

3 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

我解決了這個問題。我需要使用:

 res.setHeader("Content-Type", "text/javascript"); //Solution!
    res.writeHead(200);
    res.end(data);

而且它工作正常。


查看完整回答
反對 回復 2022-08-27
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

試試這個


res.type('.js');

res.send(data);


查看完整回答
反對 回復 2022-08-27
?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

您需要告訴瀏覽器發生了錯誤,以便它不會嘗試將響應解析為JavaScript。您可以通過發送以 4(客戶端錯誤)或 5(服務器錯誤)開頭的狀態代碼來執行此操作。下面是一個示例:


app.get("/private.js", (req, res) => {

  fs.readFile("private.js", "utf8", function (err, data) {

    if (err) {

      res.status(403).send('Could not load the data.');

    } else {

      res.send(data);

    }

  });

});


查看完整回答
反對 回復 2022-08-27
  • 3 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號