AJAX连接到本地主机?

时间:2012-07-11 21:06:47

标签: javascript android ajax

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

最终,我将使用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>

当代替localhost后跟该位置时它起作用,我只是像这样引用WorkingVersionVQuicklook.php:

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

但是,一旦我在localhost上添加确切的位置,它就不会。

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

请帮我创建一个成功映射的连接,这样它就可以用于浏览器,然后希望我的android!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

潜在的解决方案:

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

(编辑更直接回答问题)