programing

jQuery - 교차 도메인에서 웹 서비스 액세스

oldcodes 2023. 8. 27. 09:52
반응형

jQuery - 교차 도메인에서 웹 서비스 액세스

jQuery 클라이언트에서 wcf 서비스에 액세스하려고 합니다.

구체적으로 이 예는 http://www.codeproject.com/KB/aspnet/WCF_JQUERY_ASMX.aspx#4 입니다.

클라이언트 웹 페이지가 서비스와 동일한 도메인에 있을 때 모두 제대로 작동합니다.

클라이언트 웹 페이지를 다른 도메인으로 이동하면 바로 중단됩니다.서비스에 연결할 수 없으며 요청이 실패합니다.

이는 ASMX, REST 및 WCF와 같은 모든 예에서 발생합니다.

도메인을 가로질러 작업하는 방법에 대한 아이디어가 있습니까?

동일한 출발지 정책을 위반하고 있습니다.액세스 중인 웹 서비스는 요청을 수행하는 jQuery 스크립트와 동일한 도메인에 있어야 합니다.이 정책은 웹 응용 프로그램에 대한 사이트 간 스크립팅 및 코드 주입 공격을 방지하기 위해 모든 브라우저에서 시행됩니다.

JSONP, Proxies 또는 Flash를 포함한 다양한 방법이 있습니다.

어떤 기술을 사용해야 할지 제안하기 전에 정보가 좀 더 필요합니다.는 JSONP를 선호하는 편입니다. 하지만 그 사이에 약간의 가벼운 읽을거리가 있습니다.

http://taossa.com/index.php/2007/02/08/same-origin-policy/

https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript

다음은 JSONP의 사용 예입니다.

url = "http://www.test.com/getData.php?callback=parseResults";

document.body.appendChild((function() {
    var newScript = document.createElement("script");
    newScript.type = "text/javascript";
    newScript.src = url;
    return newScript;
})());

function parseResults(data) {
    alert(data);
}

JSONP(패딩이 있는 JSON)를 확인해 보는 것이 좋을 것입니다.간단히 말해서, 웹 서비스 URL을 src로 하는 페이지에 스크립트 요소를 추가하는 작업이 포함됩니다.그런 다음 웹 서비스는 스크립트가 구문 분석될 때 실행되는 콜백 함수의 첫 번째 인수로 JSON을 래핑합니다.

스크립트 요소는 동일한 오리진 정책에서 제외되므로 이 문제를 해결할 수 있습니다.

일반적으로 사용할 수 없습니다. 최신 브라우저는 사이트 간 스크립팅 공격을 방지하기 위해 이를 제한합니다.한 가지 방법은 페이지의 스크립트 요소에 결과를 삽입하는 "패딩된" JSON, JSONP를 사용하는 것입니다.여기 마이크로소프트 WCF 샘플이 있는데, 이 샘플은 그런 것 같습니다.

이틀 동안 같은 문제에 부딪혀 해결책을 찾았는데, 구글 검색을 많이 해보니 우아합니다.계층 웹 사이트에서 Rails 앱으로 데이터 스트림을 가져오는 일부 위젯 클라이언트를 위해 xss Ajax가 필요했습니다.이렇게 했어요.

언급URL : https://stackoverflow.com/questions/2697557/accessing-web-service-from-jquery-cross-domain

반응형