Javascript Can';t从HTML5应用程序对本地Web服务器进行AJAX调用
我正在尝试从HTML5应用程序向本地Web服务器发出一个简单的AJAX请求。 但是,因为客户端代码不是从Web服务器提供的,所以我得到 “访问控制允许原点不允许原点为空”错误 我已经尝试了以下帖子中描述的所有内容,但仍然不起作用: 如果我将服务器代码发布到Internet托管的服务器上,客户端应用程序就会工作。 但我希望它能与我的本地MAMP服务器一起工作,它运行在同一台笔记本电脑上 1) 在本地Web服务器上,我将以下内容添加到我的PHP控制器中:Javascript Can';t从HTML5应用程序对本地Web服务器进行AJAX调用,javascript,jquery,ajax,html,same-origin-policy,Javascript,Jquery,Ajax,Html,Same Origin Policy,我正在尝试从HTML5应用程序向本地Web服务器发出一个简单的AJAX请求。 但是,因为客户端代码不是从Web服务器提供的,所以我得到 “访问控制允许原点不允许原点为空”错误 我已经尝试了以下帖子中描述的所有内容,但仍然不起作用: 如果我将服务器代码发布到Internet托管的服务器上,客户端应用程序就会工作。 但我希望它能与我的本地MAMP服务器一起工作,它运行在同一台笔记本电脑上 1) 在本地Web服务器上,我将以下内容添加到我的PHP控制器中: header('Access-Control
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>
我错过了什么?
谢谢你的帮助 根据:
file:///Users/John/Desktop/index.html
不行。因为文件:///与localhost不同
您需要访问才能使其工作我发现问题:
对本地Web服务器(192.168.15.12)的请求需要在$.getJSON请求中指定的完整URL:“http://192.168.15.12/get/leaderboard"
“base”标记没有前置“http://192.168.15.12/“指向jQuery调用中的URL
我还需要将以下Apache配置添加到我的.htaccess文件中,以启用跨源资源共享(CORS)(在PHP中这样做不可靠):
但我正在构建一个客户端应用程序;它不是从网站上提供的,所以你的建议不起作用。"file:///Users/John/Desktop/index.html“如果我的服务器代码部署在Internet服务器(例如www.myexternalserver.com)上,但不部署在本地Web服务器(192.168.15.12)上,则此项功能有效。”。
file:///Users/John/Desktop/index.html
Header set Access-Control-Allow-Origin *