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

时间:2012-11-05 19:15:09

标签: php javascript ajax

我正在努力让我的第一个ajax示例在我的MAMP上工作。 我的ajax.html看起来像:

<html>
<head>
<script src='ajax.js'></script>
</head>
<body onload = 'ajax()'>
<div id='test'></div>
</body>
</html>

我的ajax.js看起来像:


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.php看起来像:

  回声'你好世界';

我从firebug中检测到响应标头:

  

响应标题
  连接保持活动
  内容长度11
  内容类型文本/ html
  Date Mon,05 Nov 2012 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避免浏览器bug   X-Powered-By PHP / 5.4.4

但在回复文本中没有任何内容,我的HTML中没有任何变化。

有人可以帮帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:12)

您的问题是您正在尝试执行跨域请求。由于same origin policy,浏览器会阻止它。

标准解决方案是在PHP中设置CORS headers以允许这些请求。

例如:

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