我正在尝试使用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://)访问该文件。

09-25 20:29