Member 10359492 Ответов: 1

Кросс доменный ajax ответ с IE8 и IE9


всем привет,

я м возникли проблемы с кросс-доменных AJAX-вызов
с IE8 и IE9

Мой приведенный ниже код отлично работает в Firefox, chrome, IE 10 тоже
но не работает в IE8 и IE9

я трачу много времени на поиск в google, но не преуспеваю.

мой код таков:

$.ajax({
                type: "GET",
                crossDomain: true,
                url: 'MyUrl',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data1) {
			alert(data1);
                },
                error: function (response, textStatus, errorThrown) {
                    alert('not OK ' + response.responseText);
                    alert('not OK ' + textStatus.responseText);
                    alert('not OK ' + errorThrown);
                }
            });


я использовал это ниже js тоже но все еще не работает

<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest.min.js"></script>

ссылка : https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest

пожалуйста помогите мне ребята

1 Ответов

Рейтинг:
8

Member 10359492

Привет, ребята, я нашел ответ.
IE9 и более низкая версия IE не поддерживают httpXMLRequest и для решения этой проблемы
мы должны сделать звонок с помощью XDomainRequest.
Ответ находится ниже.

if ($.browser.msie && window.XDomainRequest) {
            if (window.XDomainRequest) {
                var xdr = new XDomainRequest();
                var query = 'MyUrl';
                if (xdr) {
                    xdr.onload = function () {
            alert(xdr.responseText);
                     }
                    xdr.onerror = function () { /* error handling here */ }
                    xdr.open('GET', query);
                    xdr.send();
                }
            }
        }
        else {
        $.ajax({
                type: "GET",
                crossDomain: true,
                url: 'MyUrl',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data1) {
            alert(data1);
                },
                error: function (response, textStatus, errorThrown) {
                    alert('not OK ' + response.responseText);
                    alert('not OK ' + textStatus.responseText);
                    alert('not OK ' + errorThrown);
                }
            });
    }



вот и все.

Еще одна вещь если ваши данные не отображаются должным образом на странице то установите свой
режим документа является стандартным, поэтому IE будет использовать свою максимальную емкость опор.
другие браузеры настолько умны, что нет необходимости объяснять здесь больше.
Чтобы установить стандартный режим документа, просто поместите нижнюю строку в верхнюю часть вашей страницы.

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />


it will work in IE7, IE8 and IE9, IE10 supports all the things so no need to put this.

you can also find solution here.

http://www.kailashtandel.com/2014/01/call-wcf-restful-service-from-cross.html

Enjoy Scripting...