首页 文章

由于MIME类型,我的html出错

提问于
浏览
2

所以我的项目有问题,我开发了一个节点js服务器,现在我想显示一个包含Vue脚本的html文件,该脚本通过另一个JS文件编写的另一个方法加载数据 .

但是当我尝试在我的浏览器上加载我的html文件时,我有这样的错误:拒绝执行'http://localhost:8080/src/verbatims.js ' because its MIME type (' text / html'中的脚本不可执行,并且启用了严格的MIME类型检查 .

这是我的HTML代码:

<!DOCTYPE html>
<html lang="fr">

    <head>
        <meta charset="utf-8">
        <meta content="X-Content-Type-Options: nosniff">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">

       <script src="/src/verbatims.js" type="application/javascript"></script>

        <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.18/vue.min.js"></script>


        <title>My project</title>
    </head>

    <body>
        <div id="data">
            Le nombre de requête est de  : {{ request }}<br>
            <button v-on:click="change">Change value</button>
            <button v-on:click="stop">Arrêter</button>
        </div>

        <script>
            let app = new Vue({
                el:'#data',
                data: {
                    request: "toto",
                    ite: 0
                },
                methods: {
                    change: function() {
                        changeNbRequest()
                    },
                    stop: function() {
                        clearInterval()
                    }
                }
            });

            changeNbRequest = function() {
                var timer = setInterval(function() {
                    let verbatim = new Verbatims().list()[ite];
                }, 5000);
            }
        </script>
    </body>
</html>

我检查了我的项目中的每个类型MIME,但没有任何工作 .

任何的想法 ?

非常感谢 !

编辑:这是我的服务器代码:

const express = require('express')
const RouterVerbatim = require('./routerVerbatim')
const fs = require('fs')

class Server {

  constructor() {
    this.app = express()

    this.app.get('/', function (req, res) {
      res.send('Hello World')
    })

    this.app.get('/index', function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/html'});
      fs.readFile(__dirname + '/View/index.html', function (err,data) {
          res.end(data);
      });
    })

    this.app.get('../src/verbatims.js', function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/javascript'});
      fs.readFile('../src/verbatims.js', function (err,data) {
          res.end(data);
      });
    })

    this.app.use('/verbatims', new RouterVerbatim().router)
  }

  start() {
    this.app.listen(8080, function() {
      console.log('Exemple app listening on port 8080!')
    })
  }

}
module.exports = Server;

1 回答

  • 2

    '../src/verbatims.js'

    浏览器永远不会在URL中发送带有 ../ 的请求 .

    它会在发送之前规范化路径 .

    您需要将路径指定为 /src/verbatims.js .


    您还应该考虑使用静态文件处理中间件,而不是手动为每个中间件创建路由 .

相关问题