Междоменная загрузка jQuery () не работает для определенного сайта

#jquery #load #cross-domain

#jquery #загрузка #междоменная

Вопрос:

Я использую Jquery для загрузки html страницы, а затем выбираю определенные ее части. Но по какой-то причине это не работает на сайте, для которого я хочу его использовать (# 1). Используя firebug, я вижу, что он не получает ответа, содержащего html страницы. Кто-нибудь может объяснить, почему это не работает?

 <head>
<script class="jsbin" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.xdomainajax.js"></script>

<script type="text/javascript">
$(document).ready(
    function(){
        $('#1').load("http://ted.europa.eu/udl?uri=TED:NOTICE:310574-2011:TEXT:EN:HTML p");
        $('#2').load("http://www.google.com a");

    }
);
</script>
</head>

<body>
  <p id="1"></p>
  <p id="2"></p>
</body>
 

Ответ на запрос не показывает результата:

 jsonp1319995924645({"query":{"count":"0","created":"2011-10-30T17:32:10Z","lang":"en-US"},"results":[]});
 

Ответ №1:

Из-за ограничений безопасности браузера большинство запросов «Ajax» подчиняются одной и той же политике происхождения; запрос не может успешно получить данные из другого домена, поддомена или протокола.

Используйте любую функцию jQuery AJAX и установите dataType: "jsonp"

Комментарии:

1. Я читал, что да, но это jquery.xdomainajax.js позволяет это сделать. Это работает для www.google.com (или любой случайный сайт, который я пробовал), но не для ted.europa.eu , и я не понимаю, почему бы и нет.

2. Используйте любую AJAX-функцию jQuery и задайте тип данных: «jsonp»