我正在设计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连接到不同的主机可能会变得棘手。