문제

나는 우리가 호스트를 설정하고 싶지 않기 때문에 일부 비즈니스 사람들이 지역 파일 시스템에서 실행할 수있는 작은 도구를 모으고 있습니다.

기본적으로 HTML + JavaScript (jQuery 사용)는 제 3 자의 REST를 사용하여 일부 보고서를 가져옵니다.

문제는 FF3과 IE가 Ajax 호출을 허용하지 않는다는 것입니다.

Access to restricted URI denied" code: "1012

분명히 그것의 XSS 문제 ... 어떻게해야합니까? 리턴 된 데이터는 XML 형식입니다.

나는 이런 식으로 그것을 시도했다 :

$.get(productUrl, function (data){
    alert (data);
});

편집하다: 분명히 ... 나는 이것 (빨간 테이프로가는 방법)을위한 내부 호스트를 설정하지 않으며, 데이터가 검색된 데이터로 인해 외부에서 호스팅 할 수 없습니다.

#2 편집: 약간의 테스트는 iframe을 사용하여 요청을 할 수 있음을 보여줍니다. 숨겨진 iframe을 사용하는 단점이 있는지 아는 사람이 있습니까?

도움이 되었습니까?

해결책

비슷한 상황에서 내 솔루션은 웹의 마크를 사용하는 것이 었습니다. 즉, IE가 인식하는 특별한 HTML 의견입니다. 페이지를 다른 보안 영역에 배치합니다.

참조: MSDN

다른 팁

파이썬이 설치된 경우 파일을 제공하는 웹 서버는

python -c “import SimpleHTTPServer;SimpleHTTPServer.test()”

편집하다: 원래 포스터는이 접근법을 사용할 수 없지만 일반적으로 이것이이 문제로 향후 사용자 에게이 특정 문제를 해결하는 방법이라고 생각합니다.

데이터를 제공하는 서버를 제어합니까? 그렇다면 콜백을 설정할 수 있습니다. 기본 아이디어는 스크립트에 들어오는 데이터를 처리하는 함수가 있다는 것입니다 (귀하의 경우 XML 문자열). 그런 다음 서버는 문자열을 인수로서 콜백 함수의 JavaScript 스 니펫으로 요청에 응답합니다. AJAX를 사용하는 대신 페이지에 새 스크립트 태그를 추가합니다. 이것이 JSONP의 기초입니다. 이렇게 보입니다.

로컬 페이지.

<script>
    function callback(str) {
        alert(str);
    }
    function makeRequest(param) {
        var s = document.createElement('script');
        s.src = 'http://serveranywhere/script.bla?' + params;
        document.getElementsByTagName[0].appendChild(s);
    }
</script>

원격 서버가 반환됩니다

callback('<xml><that><does><something></something></does></that></xml>');

이제 스크립트가 페이지에 추가되면 기능 콜백이 제공되는 문자열이 실행됩니다. jQuery Call $ .Ajax 호출에서 JSONP를 사용 하여이 모든 작업을 수행합니다. 도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top