Ошибка при использовании jQuery $ .get Я не получаю. - PullRequest
1 голос
/ 18 июля 2009

Все просто:

<!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 плохих запросов. Глядя на запрос с помощью Fiddler2 и FireBug, что-то заменяет GET на OPTIONS. Но в IE и Опера, она все еще отображается как GET. Я не понимаю ????

РЕДАКТИРОВАТЬ: я чувствую себя таким идиотом, что даже не думаю о политике XSS. Спасибо, ребята.

Ответы [ 2 ]

5 голосов
/ 18 июля 2009

Вы не можете $ .get () из другого домена. Проблемы безопасности.

Вы можете пройти через прокси-скрипт на вашем сервере. Вы можете использовать PHP или C # (.NET), чтобы получить данные для вас и вернуть их в сценарий jQuery.

2 голосов
/ 18 июля 2009

Ваш скрипт обнаружил ошибку "Отказано в разрешении".

Браузеры имеют функцию безопасности, которая определяет, какие URL вы можете вызвать. Вызов URL-адреса из другого домена обычно запрещен, поскольку это открывает возможности для межсайтовых скриптов атак.

У jQuery есть решение под названием JSONP, но это зависит от другой стороны, предоставляющей реализацию JSONP.

Для Твиттера я лично использовал это:

$.getJSON('http://twitter.com/statuses/user_timeline/[username].json?count=10&callback=?', function(data) { });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...