AJAX连接到本地主机

AJAX connecting to local host?

本文关键字:主机 连接 AJAX      更新时间:2023-09-26

我正在设计javascript,它可以在服务器上调用php(目前是我自己的本地计算机)

最终,我将使用phonegap来解释javascript并显示结果。。。

我的问题似乎是连接到实际的服务器。

这是我的javascript:

  <!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function loadXMLDoc() {
    var xmlhttp;
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("POST", "http://127.0.0.1/myfiles/WorkingVersionVQuickLook.php", true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send("ipaddress=208.74.76.5");
}
</script>
</head>
<body>
<h2>AJAX</h2>
<button type="button" onclick="loadXMLDoc()">Request data</button>
<div id="myDiv"></div>
</body>
</html>

当我引用WorkingVersionVQuicklook.php而不是localhost后面跟着位置时,它就可以工作了,如下所示:

 xmlhttp.open("POST","WorkingVersionVQuickLook.php",true)

但一旦我在本地主机上添加了确切的位置,它就不会了。

当我导出到我的Android模拟器时,即使是有效的版本也不会在模拟器上工作,这让我想到我应该在本地机器上指定它。但因为当我不通过浏览器运行它时,它甚至不起作用,所以它在模拟器上也不起作用。

请帮助我创建一个成功映射的连接,这样它将适用于浏览器,然后有望适用于我的android!

潜在解决方案:

首先,我认为您可能在绝对URL中缺少端口号。第二,您需要使用IP地址从网络上的其他计算机连接到您的计算机。这是因为模拟器作为自己的虚拟机运行,因此使用localhost或相对URL将导致请求发送到模拟器上的指定路径,而不是主操作系统文件系统中的路径。

(编辑以更直接地回答问题)

尝试使用/myfiles/WorkingVersionVQuickLook.php而不是http://127.0.0.1/myfiles/WorkingVersionVQuickLook.php。使用XHR连接到不同的主机可能会变得棘手。