对PHP的Ajax调用没有返回任何内容

对PHP的Ajax调用没有返回任何内容,php,javascript,ajax,Php,Javascript,Ajax,我试图在我的MAMP上制作我的第一个ajax示例。 我的ajax.html如下所示: <html> <head> <script src='ajax.js'></script> </head> <body onload = 'ajax()'> <div id='test'></div> </body> </html> function ajax() { >>var xmlht

我试图在我的MAMP上制作我的第一个ajax示例。 我的ajax.html如下所示:

<html>
<head>
<script src='ajax.js'></script>
</head>
<body onload = 'ajax()'>
<div id='test'></div>
</body>
</html>
function ajax() { >>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.open("GET","http://localhost:8888/ajax.php",true); xmlhttp.send(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("test").innerHTML=xmlhttp.responseText; } } }

我的ajax.js看起来像:

<html>
<head>
<script src='ajax.js'></script>
</head>
<body onload = 'ajax()'>
<div id='test'></div>
</body>
</html>
function ajax() { >>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.open("GET","http://localhost:8888/ajax.php",true); xmlhttp.send(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("test").innerHTML=xmlhttp.responseText; } } } 函数ajax() { >>var xmlhttp;
if(window.XMLHttpRequest) {//IE7+、Firefox、Chrome、Opera、Safari的代码 xmlhttp=新的XMLHttpRequest(); } 其他的 {//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”); } open(“GET”http://localhost:8888/ajax.php“,对); xmlhttp.send(); xmlhttp.onreadystatechange=函数() { if(xmlhttp.readyState==4&&xmlhttp.status==200) { document.getElementById(“test”).innerHTML=xmlhttp.responseText; } } } 我的ajax.php看起来像:

<html>
<head>
<script src='ajax.js'></script>
</head>
<body onload = 'ajax()'>
<div id='test'></div>
</body>
</html>
function ajax() { >>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.open("GET","http://localhost:8888/ajax.php",true); xmlhttp.send(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("test").innerHTML=xmlhttp.responseText; } } } 回声“你好世界”

我从firebug检测到响应头:

响应标题
连接保持活动状态
内容长度11
内容类型text/html
日期2012年11月5日星期一18:57:46 GMT
保持活动超时=5,最大值=99
服务器Apache/2.2.22(Unix)mod_ssl/2.2.22 OpenSSL/0.9.8r DAV/2 PHP/5.4.4
X-Pad避免浏览器错误
X-Powered-By-PHP/5.4.4

但响应文本中没有任何内容,html中也没有任何更改

有人能帮我吗


谢谢

您的问题是您正在尝试执行跨域请求。浏览器会因为以下原因而阻止它

标准的解决方案是在PHP中设置这些请求

例如:

<?php
header("Access-Control-Allow-Origin: *");
?>


您怎么可能从提供的信息中知道这一点?顺便说一下,我问这个问题是出于好奇,而不是批评。因为
(“GET”,"http://localhost:8888/
。PHP页面不太可能是在8888上提供的。啊,相同的来源也适用于端口?直到……谢谢。它适用于端口,更糟糕的是:
文件://
就像一种NaN:在
文件://
中提供的页面甚至与自身的来源不一样。我不确定你的意思,但
本地主机:80
localhost:8888
是不同的域(针对此问题),就像
otherdomain.com:80
localhost:8888
一样。因此,如果我正确理解了您的问题,您不需要再使用其他服务器。