我有以下html + jquery:
<body>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script>
$(window).load(function() {
$('#test').bind('click', function() {
$.get("http://localhost:3000/promotions.xml", function(data){
alert("Data Loaded: " + data);
});
});
});
</script>
</head>
<input id="test" type="button" value="Testando">
</body>
问题是data参数是空的,即使我在浏览器上测试url时我看到一个带有一些数据的xml文件。我尝试切换到HTML和json,它也没有工作。服务器报告一切正常:
Started GET "/promotions.xml" for 127.0.0.1 at Thu Feb 10 16:02:33 -0200 2011
Processing by PromotionsController#index as XML
←[1m←[35mPromotion Load (1.0ms)←[0m SELECT "promotions".* FROM "promotions"
Completed 200 OK in 41ms (Views: 31.0ms | ActiveRecord: 1.0ms)
所以我想这是javascript / jQuery中我缺少的东西。我正在使用jquery 1.4.4。怎么了?
答案 0 :(得分:2)
我猜这是Same Origin Policy的结果,它要求将AJAX请求发送到与页面原点相同的位置。
如果页面未来自localhost:3000
,则会违反该政策。
如果您正在使用Chrome进行测试,则应该能够通过以下方式从终端应用程序启动安全策略来禁用安全策略:
--disable-web-security