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
'programing' 카테고리의 다른 글
Larvel 5 프로덕션 모드에서 전환하는 방법 (0) | 2023.08.27 |
---|---|
keytool 오류: java.io .IoException:잘못된 ABA 형식 (0) | 2023.08.27 |
Android TextView 행 간 패딩 (0) | 2023.08.27 |
Node.js의 디렉터리를 제거하지 않고 디렉터리에서 모든 파일을 제거하는 방법 (0) | 2023.08.27 |
asp.net EF core run 명령 Scape-DbContext 오류 외부 키 (0) | 2023.08.22 |