关于javascript:在本地交叉原始请求

Cross origin requests on local

我正在尝试一些非常简单的东西,但由于某些原因它不起作用:

index.html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
SyriLab
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
    <header></header>
   

    <script src="js/jquery-3.3.1.min.js">
    <script src="js/poper.min.js">
    <script src="js/bootstrap.min.js">
    <script src="js/functions.js">
    <script src="js/main.js">
</body>
</html>

js / main.js:

1
2
3
4
5
6
7
8
9
window.onload=function(){
    main();
}


function main(){
    $("header").load("./pages/header.html");
    $("#content").load("./pages/home.html");
}

启动index.html时出现的错误:

无法加载文件:/// E:/Dev/Eclipse/SyriLab/pages/header.html:仅支持协议方案的跨源请求:http,数据,chrome,chrome-extension,https。

无法加载文件:/// E:/Dev/Eclipse/SyriLab/pages/home.html:交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https。

一切都是本地的,相同的根,我只是想创建一个基本的html页面,包括bootstrap和jquery(也是poper,不确定它是什么,但是在bootstrap页面上)。 并使用类似于"包含"的东西在PHP中,但使用常规的js和html。

我在这做错了什么?


根据您的问题,您似乎正在尝试将index.html作为本地文件进行访问。 而不是那样,您必须使用webserver(例如nginx,apache等)来访问该文件。 由于用于访问本地文件的协议是file://,jQuery的加载方法将无法加载文件。 出于安全原因,浏览器禁止此类请求。

配置Web服务器并尝试使用http协议访问index.html,您的代码应该可以正常工作。


正如其他人所说。 您必须使用服务器提供文件。

为此目的并避免使用Python安装软件。

在您的控制台类型中:

1
2
cd /path/to/my/index.html
python -m http.server

默认情况下,它将使用http://0.0.0.0:8000/

这个简单的服务器将提供您的目录文件。
Index.html是服务器将尝试查找和提供的空资源请求。