Проблемы AJAX, нет ответа или доступ запрещен

Что это может означать, если я делаю ajax-запрос с помощью jQuery .load() и вообще не получаю ответа в firefox или chrome, а в ie8 я получаю сообщение об ошибке «Отказано в доступе»?


person David Meister    schedule 22.02.2010    source источник
comment
@user278457 user278457 используйте firebug в firefox и посмотрите, что происходит   -  person ACP    schedule 22.02.2010
comment
Я использовал firebug, полностью пустой ответ. Проблема заключалась в той же политике происхождения.   -  person David Meister    schedule 22.02.2010


Ответы (3)


Если вы загружаете страницу из другого домена (например, www.yoursite.com и пытаетесь загрузить «yoursite.com» или даже «google.com»), вы получаете межсайтовый скриптинг ошибка предотвращения.

person Timothy Khouri    schedule 22.02.2010
comment
Это не XSS, в котором Сторона A обманом заставляет Сторону B посетить веб-сайт Стороны C, используя URL-адрес, предназначенный для использования дыры в безопасности на веб-сайте Стороны C, которая позволяет добавлять на него произвольный код. - person Quentin; 22.02.2010
comment
Почему, это неправильно? (читает…). Нет, это подтверждает то, что я сказал. Речь идет о подмножестве уязвимостей внедрения кода, а не о браузерах, мешающих авторам выполнять междоменные HTTP-запросы. Уязвимость XSS позволяет обойти ту же политику происхождения — полная противоположность блокировке запроса той же политикой происхождения! - person Quentin; 22.02.2010
comment
@David: Вы правы, но разве политика не предотвращает XSS? - person Daniel Vassallo; 22.02.2010
comment
Нет. Он останавливает другой вид атаки на сторонний сайт. - person Quentin; 22.02.2010
comment
ОМФГ. это.никогда.не.становится.проще! но, еще раз, спасибо, ребята. Сегодня я влюбился в переполнение стека. Дважды спас мою кодинговую жизнь. - person David Meister; 22.02.2010
comment
да, я вставил www. перед моим доменом и все заработало. Забавно, что именно IE натолкнул меня на мысль, что причиной проблемы может быть что-то вне моего кода. - person David Meister; 22.02.2010

Обычно это означает, что вы пытаетесь нарушить политику того же источника и запрашиваете данные с другого хоста.

person Quentin    schedule 22.02.2010

попробуйте получить доступ к своим данным через прокси-сервер php следующим образом: http://www.daniweb.com/code/snippet216729.html

с помощью jQuery вы можете отправить запрос на ваш/относительный/путь/к/proxy.php?proxy_url=http://www.domain.com/yourdata

person buggy1985    schedule 22.02.2010
comment
Не используйте прокси-сервер, который не устанавливает строгих ограничений на запрашиваемые URI. В противном случае вы становитесь посредником для атак сторонних сайтов и для спамеров, которые маскируют свои собственные URI. - person Quentin; 22.02.2010
comment
Ты прав. Но вы можете предотвратить атаки, проверив URL-адрес в своем PHP-скрипте перед доступом к нему. - person buggy1985; 23.02.2010