Запрос на перекрестный домен ajax

Я хочу получить страницу ответа html с URL-адреса перекрестного домена.

для этого я использую запрос ajax как,

 $.ajax({
            type: 'GET',
            url: "http://wcidevapps.com/salescentral/idisk/0001000383/iDisk",
            dataType: "jsonp",
            success: function (response) {
                $(response).find('li a').each(function () {
                    listHref.push($(this).attr('href'));
                });

            }
        });

Но после запроса он не ответит каким-либо результатом.

Ответ 1

<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
  <script type="text/javascript">
    function NameAFunctionName() {
        $.ajax({
          url: 'http://wcidevapps.com/salescentral/idisk/0001000383/iDisk',
          type: 'GET',
          dataType: 'json',
          headers: {
            //WRITE IF THEIR HAVE SOME HEADER REQUEST OR DATA
          },
          crossDomain: true,
          success: function (data, textStatus, xhr) {
            console.log(data);
          },
          error: function (xhr, textStatus, errorThrown) {
            console.log(errorThrown);
          }
        });
    }   
</script>

Ответ 2

Проверить документацию: http://api.jquery.com/jQuery.ajax/

crossDomain (по умолчанию: false для запросов одного домена, true для междоменных запросов)

Тип: Boolean

Если вы хотите принудительно выполнить запрос crossDomain (например, JSONP) в том же домене, установите для параметра crossDomain значение true. Это позволяет, например, перенаправить серверную сторону в другой домен. (версия добавлена: 1.5)

Ответ 3

Мое подозрение в том, что вы видите проблему, потому что запрашиваемая вами страница не отвечает с ответом json (p), но отвечает перенаправлением на:

http://wcidevapps.com/salescentral/idisk/0001000383/iDisk/

(обратите внимание на конечную косую черту)

который затем возвращает тип содержимого:

Content-Type:text/html;charset=ISO-8859-1

Изменить: Если вы намерены извлечь данные из перекрестного домена данных сайта, для дальнейшего анализа с помощью script, я предлагаю выбрать одно из следующих значений:

Успение 1: вы контролируете страницы на сервере http://wcidevapps.com"

В этом случае у вас есть два варианта: либо добавить заголовок CORS "Access-Control-Allow-Origin: *" в ответ (и настроить клиентский вызов ajax() с помощью dataType: "html" ), либо создать специальная страница JSON (P), которая предоставляет те же данные, что и JSON (с дополнением) (и настраивает вызов ajax() клиента как в OP, с dataType: "jsonp" )

Успение 2: вы НЕ контролируете страницы на сервере http://wcidevapps.com

В этом случае единственным вариантом, о котором я могу думать, является настройка прокси-сервера на сайте, который вы контролируете. Попросите прокси-сервера проксировать запросы/ответы на " http://wcidevapps.com", но добавьте заголовок CORS "Access-Control-Allow-Origin: *" для ответа (и настроить клиентский вызов ajax() с помощью dataType: "html" )

Ответ 4

Если вы используете веб-службу asp.net, вам нужно добавить это в файл webconfig;

<system.webServer>
    <directoryBrowse enabled="true"/>
<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
</httpProtocol>
</system.webServer>