使用jQuery的$ .get时出错我得不到。

时间:2009-07-17 20:14:56

标签: javascript jquery

很简单:

<!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>
<title></title>

<script src="jquery.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function() {
        $.get("http://twitter.com/statuses/user_timeline/19092829.rss");
    });
</script>
</head>
<body>

</body>
</html>

在IE和Opera中,这非常有效,但在FF 3.5,Chrome和 Safari我收到400 Bad Request。使用Fiddler2查看请求 和FireBug,用OPTIONS取代GET。但在IE和IE中 Opera,它仍然显示为GET。我不明白????

编辑:我觉得这样的白痴甚至没有考虑过XSS政策。谢谢你们。

2 个答案:

答案 0 :(得分:5)

您不能来自其他域的$ .get()。安全问题。

您可以在服务器上浏览代理脚本。您可以使用PHP或C#(.NET)为您获取数据并将其返回到您的jQuery脚本。

答案 1 :(得分:2)

您的脚本遇到了权限被拒绝错误。

浏览器具有一个安全功能,可以定义您可以调用的URL。通常不允许从不同的域调用URL,因为它将为cross site scripting攻击开辟途径。

jQuery有一个名为JSONP的解决方案,但这取决于提供JSONP实现的另一方。

对于Twitter,我个人用过:

$.getJSON('http://twitter.com/statuses/user_timeline/[username].json?count=10&callback=?', function(data) { });