在学习JavaScript高级编程关于Ajax的时候,照了书上打代码,直接在浏览器下运行,会得到一些错误,例如:
这是 example.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script
src="http://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Document</title>
</head>
<body>
<script src="ajax.js"></script>
</body>
</html>
ajax.js 这是ajax请求的数据:
var xhr=new XMLHttpRequest();
xhr.open("get","main.js",false);
xhr.send(null);
if((xhr.status>=200 && xhr.status<300)||xhr.status==304){
alert(xhr.responseText);
}else{
alert("Request was unsuccessful: "+xhr.status);
}
在Chrome中报错:
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
这是因为直接打开文件用的事file协议,体现在浏览器的URL上,要解决的话,就必须使用http协议,即在服务器的环境下运行代码。
Tomcat Apache可以提供web服务,由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆。
先到官网安装Tomcat,然后解压到c盘,文件目录下有一个webapps,是用来放我们项目的。把html,js文件放进去。然后bin目录下去启动服务器,就可以在浏览器直接浏览网页了,比如我们将上面的两个文件,放在webapps下的一个叫demo的目录下。打开谷歌浏览器,输入网址127.0.0.1:8080/demo/example.html 就可以得到ajax.js文件里的数据。注意两点:第一,端口是8080端口,默认的。第二,要输入绝对路径,别忘了demo/