Наш веб-портал требует кросс-доменной работы. Текущая версия кода работает в IE (с явной настройкой HTML для эмуляции IE 7). Один и тот же код НЕ работает в Chrome или Mozilla. При нажатии на ссылку появляется сообщение об ошибке. Он гласит: «Произошла ошибка: 0 error filename = myfile.html» .

Я изменил код JavaScript, как показано ниже.

//code for getting response from cross domain $.ajaxPrefilter( function (options) { if (options.crossDomain {amp}amp;{amp}amp; jQuery.support.cors) { var http = (window.location.protocol === 'http:' ? 'http:' : 'https:'); options.url = http   '//cors-anywhere.herokuapp.com/'   options.url; //options.url = "http://cors.corsproxy.io/url="   options.url; } }); $.get( 'http://www.myportal.com/sierra/xxxx.html', function (response) { console.log("{amp}gt; ", response); $("#viewer").html(response); }); 

Этот код прекрасно работает в Chrome и Mozilla, но больше не работает в IE. Затем я удалил тег HTML, который должен был эмулировать IE7, и заменил его краем . Даже тогда это не сработало. Он начал работать только после отключения нескольких настроек безопасности. Но конечные пользователи не хотят изменять какие-либо настройки браузера только для доступа к моему веб-сайту.

Есть ли другой способ, который будет работать во всех браузерах для междоменного доступа?

Вместо $ .get () используйте этот код JavaScript:

 function newReq(url,callBack) { var xmlhttp; if (window.XDomainRequest) { xmlhttp=new XDomainRequest(); xmlhttp.onload = function(){callBack(xmlhttp.responseText)}; } else if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest(); else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 {amp}amp;{amp}amp; xmlhttp.status==200) callBack(xmlhttp.responseText); } xmlhttp.open("GET",url,true); xmlhttp.send(); }