我正在关注关于Javascript和Ajax的Lynda教程,并在主题"使用同步XHR请求"。
上解决了这个问题。基本上html文件是:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>JavaScript AJAX</title>
</head>
<body>
<script src = "script.js"></script>
</body>
</html>
和javascript文件是:
var request = new XMLHttpRequest();
request.open('GET', 'data.txt', false);
request.send();
console.log(request);
data.txt文件有&#34; Hello World&#34;在它上面。
项目文件的路径是
C:/wamp/www/ajax/index.html
C:/wamp/www/ajax/script.js
当我在wampserver上打开本地主机并执行检查元素时,我得到上面的错误说&#34;无法加载资源:服务器响应状态为404(未找到)&#34;
主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用。如需更多帮助,请查看http://xhr.spec.whatwg.org/。 http://localhost/ajax/script.js无法加载资源:服务器响应状态为404(未找到)
的XMLHttpRequest
onabort: null
onerror: null
onload: null
onloadend: null
onloadstart: null
onprogress: null
onreadystatechange: null
ontimeout: null
readyState: 4
response: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">↵<html><head>↵<title>404 Not Found</title>↵</head><body>↵<h1>Not Found</h1>↵<p>The requested URL /ajax/data.txt was not found on this server.</p>↵<hr>↵<address>Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80</address>↵</body></html>↵"
responseText: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">↵<html><head>↵<title>404 Not Found</title>↵</head><body>↵<h1>Not Found</h1>↵<p>The requested URL /ajax/data.txt was not found on this server.</p>↵<hr>↵<address>Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80</address>↵</body></html>↵"
responseType: ""
responseURL: "http://localhost/ajax/data.txt"
responseXML: null
status: 404
statusText: "Not Found"
timeout: 0
upload: XMLHttpRequestUpload
withCredentials: false
__proto__: XMLHttpRequest
答案 0 :(得分:2)
在“使用同步XHR请求”主题上出现此问题。
所以不要这样做。
request.open('GET','data.txt',false);
false
表示“不要发出异步请求”。拿出来。
request.open('GET', 'data.txt');
然后,您需要使用事件侦听器,而不是期望浏览器等到响应返回之后再继续执行JavaScript。
request.addEventListener("load", function (event) {
console.log(this);
});
当然,这与...无关:
无法加载资源:服务器响应状态为404(未找到)
这意味着http://localhost
说/ajax/data.txt
不存在。