我有这个功能的问题:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<title>Untitled Document</title>
<script type="text/javascript">
jQuery(document).ready(function(){
$.get("http://www.boersenpoint.de/pages/charts/shareSupplier.php?request=topFlop", { indexName: "DAX" } ,function(data){
$(data).find('share').each(function(){
alert('');
});
});
});
</script>
</head>
<body>
</body>
</html>
Firebug找不到任何错误。理论上应该出现4个警报,但不会出现。为什么呢?
答案 0 :(得分:1)
问题是same-origin policy。这意味着除非您所在的页面也在该域上,否则您无法对域执行AJAX请求。
解决问题的最简单方法是在您的服务器上设置代理请求的脚本 - 您向服务器发出请求,服务器向其他服务器发出请求并将响应反馈给您
如果远程服务器支持它,你也可以使用JSONP,但我怀疑这是可能的,因为页面是一个XML文档。
答案 1 :(得分:1)
$(function(){
$.get("http://www.boersenpoint.de/pages/charts/shareSupplier.php?request=topFlop", {indexName: "DAX"}, function(data) {
$(data).find('share').each(function(){
alert('');
});
});
});
您的代码存在一些问题......
data
为空,该怎么办?如果是,则.find('share').each
将无法执行==&gt;没有警觉。 alert();
语句,如果它不包含文本(我不知道你的空字符串,只需要记住一些东西)。 总而言之,在这种情况下,您的具体问题是同源政策违规。 2.和3.是为了您未来发展的利益。