我在做一个学习PHP和Javascript/JQuery的网站,我还没有太多的经验,我试图了解什么是最好的实现结构
PHP创建字符串数组
我可以通过json-encode从index.php访问数组
然后我想将数组发送到.mjs文件中的类中的函数
问题是,在index.php文件中,通过脚本标记,我无法导入模块,如果使用script type=“module”,则可以使用导入
但我有个错误:
未能加载模块脚本:服务器在main.mjs::1中以非JavaScript MIME类型“”响应
MDN引用mjs扩展用于防止这种情况。
这就是我被困住的原因。
服务器目录如下:
index.php索引
js/主要.mjs
js/索引.mjs
代码段:
index.php索引

    <head>
      <meta charset="utf-8">
      <title>Website</title>

      <link rel="stylesheet" type="text/css" href="style.css">
      <script src="js/jquery-3.4.1.slim.min.js"></script>
      <script src="js/main.mjs" type="module"></script>

      <script type="module">

        import {start_index} from "./js/main.mjs";
        initialize();

        function initialize()
        {
          var arr = <?php echo json_encode($images_arr); ?>;
          start_index(arr);
        }

      </script>

    </head>

主要mjs
    function start_index(arr)
    {
      import {gallery_manager} from './index.mjs';
      var gallery_mngr = new gallery_manager();
      gallery_mngr.initialize(arr);
    }

    export {start_index};

指数mjs
    class gallery_manager
    {
      constructor(){}

      var images = "";
      var placeholder = "../images/common/placeholder.png";

      public function initialize(arr)
      {
        images = arr;
        alert(images[0]);
      }

      function switchByTimer()
      {

      }

      function switchImage(new_image, direction)
      {

      }
    }

    export {gallery_manager};

最佳答案

主要问题:
您的web服务器似乎不“理解”什么是“mjs”文件,因此它没有在响应的HTTP头中发送适当的MIME类型。
建议:将“.mjs”改为“js”,看看是否有帮助“mjs”面向NodeJS。
重要问题:
问:你使用的是网络服务器,对吗?
问:什么样的网络服务商?Apache2/Linux?IIS Express本地Windows PC?还有别的吗?
强烈建议:熟悉Chrome Developer Tools

关于javascript - 将PHP数组发送到JS模块,“导入”问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58581043/

10-09 22:11