【发布时间】:2020-12-31 12:35:36
【问题描述】:
我有一个调用 javascript 文件的小 html 文件,但是当我尝试在浏览器中访问它时,出现以下错误:
在以下位置访问脚本 'file:///C:/Users/jekob/Desktop/battleship/index.js' 来自原产地 “null”已被 CORS 策略阻止:跨源请求仅 支持协议方案:http、data、chrome-extension、edge、 https,chrome 不受信任。
我已经用谷歌搜索了几个小时,发现我可以通过服务器(如 node.js)托管我的应用程序,然后允许 CORS。但是我不想要任何服务器。我只想要一个简单的 html 和一个 js 文件。
index.html:
<!DOCTYPE html>
<html>
<head>
<title>battle-ship</title>
<link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
<div id="board"></div>
<script type="module" src="index.js"></script>
</body>
</html>
index.js:
import {board} from './board_0.1.js';
console.log(board);
board.js:
class cell{
constructor(){
this.locationByLetter = null;
this.locationByNumb = [];
this.occupied = false;
this.clicked = false;
}
}
class shipDitel{
constructor(name,size){
this.name = name;
this.size = size;
this.location =[];
}
}
export const board = buildBoard();
const shipType = [["Destroyer",2/*size*/],["Submarine",3],["Cruiser",3,],
["Battleship",4,],["AircraftCarrier",5]];
var shipsArr=setShip();
var selectedShip = selectShip(shipsArr[4]);
var stateGame ={
setting:true,
gameIsStart:false
}
function buildBoard(){
..
};
function setShip(){ //setting to a ship his name and size .
...
};
function selectShip(ship){
...
}
function onSelectedCell(cell){
...
};
function checkTheZone(cell){
...
};
【问题讨论】:
-
可以使用命令行选项启动一个 Chrome 实例(仅用于此网页)
--disable-web-security并绕过 CORs 保护。但是,您永远不应该使用此设置进行常规互联网浏览,因为它会带来很大的安全漏洞和漏洞。 -
模块需要服务器。对于小型测试和摆弄,我发现从相关目录启动 python HTTP 服务器很容易;喜欢
python -m http.server
标签: javascript html cors es6-modules