4

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

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

我的 ajax.js 看起来像:

函数 ajax()
{
>>var xmlhttp; 
如果(窗口.XMLHttpRequest) {// IE7+、Firefox、Chrome、Opera、Safari 的代码 xmlhttp=新的 XMLHttpRequest(); } 别的 {// IE6、IE5的代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","http://localhost:8888/ajax.php",true); xmlhttp.send(); xmlhttp.onreadystatechange=函数() { 如果(xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("test").innerHTML=xmlhttp.responseText; } } }

我的 ajax.php 看起来像:

回声“你好世界”;

我从萤火虫检测到响应标头:

响应标头
连接 Keep-Alive
Content-Length 11
Content-Type text/html
日期 Mon, 05 Nov 2012 18:57:46 GMT
Keep-Alive timeout=5, max=99
Server 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 中也没有任何变化。

任何人都可以帮助我吗?

谢谢!

4

1 回答 1

12

您的问题是您正在尝试执行跨域请求。由于同源策略,浏览器会阻止它。

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

例如 :

<?php
header("Access-Control-Allow-Origin: *");
?>
于 2012-11-05T19:17:09.963 回答