我正在尝试使用Javascript测试简单的Ajax脚本,但没有收到响应。 PHP脚本放在本地服务器的htdocs
文件夹中,而包含Ajax调用的HTML页面放在我的桌面上。从服务器接收到的readyState
为4,但返回的状态为0,而不是200。
在Firefox状态下生成的错误:NS_ERROR_DOM_BAD_URI: Access to restricted URI denied.
这是负责调用Ajax对象的代码部分:
var myRequest = getXMLHttpRequest();
function callAjax() {
var url = "localhost/clock.php";
var myRandom = parseInt(Math.random()*99999999);
myRequest. open("GET", url + "?rand=" + myRandom, true);
myRequest.onreadystatechange = responseAjax;
myRequest.send(null);
}
function responseAjax() {
if(myRequest.readyState == 4) {
if(myRequest.status == 200) {
var now = new Date();
var localTime = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
var serverTime = myRequest.responseText;
document.getElementById("clock").innerHTML = "Server: " + serverTime + "<br />Local: " + localTime;
} else {
alert("An error has occurred: " + myRequest.statusText);
}
}
}
谁能提供我的问题的见解?
OSX 10.8.5
MAMP版本2.1.3
最佳答案
您说您的文件在桌面上。您无法打开本地文件(file://)并执行ajax。您需要通过Apache服务器(http://)访问该文件。