gpt4 book ai didi

javascript - 将 PHP 数组发送到 JS 模块, "import"问题

转载 作者:行者123 更新时间:2023-11-28 02:19:44 24 4
gpt4 key购买 nike

我正在制作一个网站来学习 PHP 和 Javascript/JQuery,我还没有太多经验,我正在尝试了解什么是最好的实现结构

PHP 创建一个字符串数组我可以通过 json_encode 从 index.php 访问数组然后我想将数组发送到 .mjs 文件中的类中的函数问题是在 index.php 文件中,通过 script 标签我无法导入模块,如果我使用 script type="module" 我可以使用进口但我得到这个错误:

无法加载模块脚本:服务器在 main.mjs::1 中响应了非 JavaScript MIME 类型的“”

mjs 扩展的 MDN 引用用于防止这种情况。这就是我被卡住的原因。

服务器目录如下所示:

  • index.php
  • js/main.mjs
  • js/index.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};

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};

最佳答案

主要问题:

您的网络服务器似乎无法“理解”什么是“mjs”文件,因此它不会在响应的 HTTP header 中发送适当的 MIME 类型。

建议:将“.mjs”更改为“js”,看看是否有帮助。 “mjs”面向 NodeJS。

重要问题:

问:您使用的是网络服务器,对吗?

问:什么样的网络服务器? Apache 2/Linux? IIS Express 本地 Windows PC?还有别的吗?

强烈建议:熟悉 Chrome Developer Tools .

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com