web-dev-qa-db-fra.com

"L'accès au script à partir de l'origine 'null' a été bloqué par la stratégie CORS" Erreur lors de la tentative de lancement d'une page html à l'aide d'une fonction js importée

J'ai eu cette erreur en essayant de lancer une page html à l'aide d'un fichier javascript qui importait une fonction d'un autre fichier:

Access to script at 'file:///C:/Users/bla/Desktop/stuff/practice/jsPractice/funcexecute.js' 
from Origin 'null' has been blocked by CORS policy: 
Cross Origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Failed to load resource: net::ERR_FAILED

Voici le code html:

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=Edge'>
    <title>Page Title</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>

</head>
<body>
    <script type = 'module' src='funcexecute.js'></script>

</body>
</html>

js qui a été appelé depuis le html: (funcexecute.js)

import sumup from '/funcfile.js';
console.log(sumup(1,2));

Module importé: (funcfile.js)

function sumup(num1, num2){
    return num1+num2;
}
export default sumup;

Comment puis-je réparer cela? (j'utilise vscode)

3
noon

Vous ne pouvez pas utiliser un fichier de script en tant que module sans utiliser de serveur. Jetez un oeil ici

Voici quelques-unes des options

  • Utiliser Live Server (Extension pour VS Code)
  • Utilisez http-server module from node (installez via npm puis exécutez http-server . de votre répertoire de projet)
  • use http.server package de python
  • utiliser un serveur wamp (ou lampe)

En bref, je ne peux pas utiliser type="module" avec fichier protocole

1
HARDY8118