Possible Duplicate:
Why is cross-domain Ajax a security concern?
我在使用 jQuery 时遇到了一个大问题。我试图让 jQuery 加载从远程 Web 服务器上的 PHP 页面生成的 HTML。但每当我尝试在本地运行它时,什么也没有发生。但是,无论出于何种原因,当它在我的网络主机上时,它都会运行得很好。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Unicode" />
<title>Decisive Shoutbox</title>
<style type="text/css">
body
{
margin: 0;
width: 288;
height: 160;
font-family: verdana;
font-size: 20px;
}
#gadgetContent
{
height: 160;
overflow: auto;
vertical-align: middle;
}
.shout
{
font-size: 8px;
}
.date
{
font-size: 6px;
font-color: #010101;
}
</style>
<link href="flexcrollstyles.css" rel="stylesheet" type="text/css" />
<script type="text/jscript" src="scripts/flexcroll.js"></script>
<script type="text/jscript" src="scripts/jquery.js"></script>
<script type="text/jscript" language="jscript">
$(document).ready(function() {
$.get("http://decisive-media.net/gameguy/gadgets/shouts.php", function(data) {
$('#gadgetContent').html(data);
//fleXenv.fleXcrollMain('gadgetContent');
alert("done");
});
});
</script>
</head>
<body>
<div id="gadgetContent">
</div>
</body>
</html>
最佳答案
出于安全原因,浏览器限制 ajax 调用到同一源,禁止您连接到与网页不同域的远程服务器。您可以阅读 same origin policy on MDN .
一个潜在的解决方法是 JSONP它使用 <script>
完成请求标签不受相同的原始策略的约束,但它需要服务器合作来实现 JSONP,因为它必须从 <script>
生成正确类型的响应才能工作。标签。
我已经构建了一个 Web 组件(一个 HTML5 幻灯片,通过 ajax 查询服务器以获取幻灯片列表),我在本地测试并在 Web 上运行。当它在我的测试环境(硬盘上的 HTML 文件)中进行本地测试时,我使用 JSONP 从远程服务器获取数据以绕过安全限制,但当它在真实环境中运行时,我使用常规 ajax我的应用程序会根据环境自动检测所需的内容。
关于javascript - jQuery "get"方法在本地不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9650927/