我正在尝试从HTML5应用程序向本地网络服务器发出简单的AJAX请求。 但是,由于未从Web服务器提供客户端代码,因此我得到 “Access-Control-Allow-Origin不允许原始位置null”错误。无法从HTML5应用程序对本地网络服务器进行AJAX调用
我试着在下面的帖子中描述的一切,但仍然不能正常工作:XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin
如果我发布的互联网托管服务器,客户端应用程序的作品在我的服务器代码。 但我希望它能与我的本地MAMP服务器在同一台笔记本电脑上运行。
1)在本地网络服务器,添加以下到我的PHP控制器:
header('Access-Control-Allow-Origin: *');
2)这里是我的HTML5客户端应用程序。因为服务器支持CORS,所以不需要JSONP。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"></script>
<base href='http://192.168.15.12/'></base> <!-- local MAMP server -->
<script>
$(document).ready(function() {
$('#leadButton').click(function(){
$.getJSON(
'get/leaderboard',
function(data){
var leader;
leader = "<div> The top leader is from local webserver is: " + data[0].name + "</div>";
$('#leaderboard').append(leader);
console.log(data);
}
);
});
});
</script>
</head>
<body>
<div id="leaderboard">Leaderboard
<button id="leadButton">Get Leaderboard</button>
</div>
</body>
3)当我调用客户端应用程序(文件:///Users/John/Desktop/index.html)从Chrome中,并点击leadButton”按钮,这里所产生的请求/响应头:
Request URL:http://192.168.15.12/get/leaderboard
Request Method:OPTIONS
Status Code:403 Forbidden
Request Headers
Access-Control-Request-Headers:Origin, X-Requested-With, Accept
Access-Control-Request-Method:GET
Origin:null
Response Headers
Connection:Keep-Alive
Content-Length:227
Content-Type:text/html; charset=iso-8859-1
Date:Thu, 03 Nov 2011 19:03:27 GMT
Keep-Alive:timeout=5, max=100
Server:Apache
我缺少什么 感谢您的帮助
但我建设客户端应用程序;它不是从网站提供的,所以你的建议是行不通的。 “file:///Users/John/Desktop/index.html”适用于我的服务器代码部署在互联网服务器(例如www.myexternalserver.com)上,但不在本地网络服务器(192.168.15.12)上部署。 – JMan