Доступ к Script в 'from origin' null 'был заблокирован политикой CORS

1

Поэтому, когда я пытаюсь импортировать класс из другого файла javascript, я получаю сообщение об ошибке в консоли:

Access to Script at 'file:///home/../.../JavaScript/src/index.js' from origin 'null' has been blocked by CORS policy: Invalid response. Origin 'null' is therefore not allowed access.

В моем html файле я добавляю файл сценария таким образом:

<script type="module" src="src/index.js"></script>

Мой index.js выглядит так:

import Paddle from "/src/paddle";

let canvas = document.getElementById("gameScreen");
let ctx = canvas.getContext("2d");

const GAME_WIDTH = 800;
const GAME_HEIGHT = 600;

ctx.clearRect(0, 0, GAME_WIDTH, GAME_HEIGHT);
let paddle = new Paddle(GAME_WIDTH, GAME_HEIGHT);

paddle.draw(ctx);

И paddle.js:

export default class Paddle {
    constructor(gameWidth, gameHeight){
        this.width = 150;
        this.height = 30;

        this.position = {
            x: gameWidth/2 - this.width/2,
            y: gameHeight-this.height-10
        }
    }
    draw(ctx){
        ctx.fillRect(this.position.x, this.position.y, this.width, this.height); 
    }
}

Я использую браузер Chrome. И моя структура папок выглядит так:

/javascript
   -/src
       -index.js
       -paddle.js
   -index.html

Кто-нибудь имеет представление о том, как избежать политики cors?

  • 0
    Вы хотите сделать сайт на файл-протокол? вам нужен сервер, тогда вы можете установить заголовок разрешения для Cors
  • 0
    @johnSmith Почему мне нужно запускать код javascript на стороне клиента с сервера?
Показать ещё 2 комментария
Теги:
ecmascript-6

1 ответ

1

Модули ES6 подчиняются политике одного и того же происхождения. Вам нужно запустить скрипт с локального сервера, открыть файл напрямую с помощью браузера не получится.

см. здесь Поддержка модуля ES6 в Chrome 62/Chrome Canary 64, не работает локально, ошибка CORS

Ещё вопросы

Сообщество Overcoder
Наверх
Меню