문제

JavaScript에서 WCF 서비스에 대한 크로스 사이트 호출을 할 수 있습니까?

그것이 게시물이거나 얻는 지 신경 쓰지 않습니다.

그러나 요즘 브라우저는 게시물 또는 GET으로 크로스 사이트 호출을 허용하지 않는다고 들었습니다.

이것을 우회하고 여전히 a를 호출 할 수 있습니까? WCF 서비스?

도움이 되었습니까?

해결책

브라우저의 크로스 사이트 스크립팅 차단제를 우회하기 위해 할 수있는 일은 없습니다. 이러한 차단제는 XMLHTTPREQUEST가 모든 도메인으로 발생하는 것을 막지 만 포함 된 스크립트 또는 페이지를로드 한 것입니다.

즉, 일반적으로 사용되는 해결 방법이 하나 있습니다. JavaScript를 사용하여 Cross-Site URL 인 SRC를 참조하는 DOM에 새 항목을 작성하십시오. 모든 RPC 메소드 인수를이 "스크립트"로 전달하여 실행될 JavaScript를 반환하여 성공 또는 실패를 알려줍니다.

이런 식으로 게시물을 수행 할 방법이 없습니다. SRC URL은 얻어야하므로 인수를 그런 식으로 통과시킬 수 있습니다. WCF에 "Get Only"액세스 방법이 있는지 확실하지 않습니다. 또한 브라우저는 원격 태그의 결과가 유효한 JavaScript 객체가 될 것으로 예상되므로 WCF 서비스가이를 준수해야합니다. 그렇지 않으면 JavaScript 오류가 발생합니다.

크로스 사이트 스크립팅을 우회하는 또 다른 일반적인 방법은 귀하의 요청에 대한 프록시를 작성하는 것입니다. 다시 말해서, example.com에서 호스팅 된 스크립트에서 도메인 test.com에 액세스하려면 example.com에서 URL을 적절한 방법으로 test.com에 대한 요청을 프록시합니다.

예를 들어, WCF에 자체 사이트 간 스크립팅 제한이 없다고 가정 할 때 프록시는 정답 일 수 있습니다.

다른 팁

우연히 jQuery를 사용하고 있습니까? JQuery는 "JSONP"를 사용하여 크로스 도메인 JSON 요청을 지원합니다. 당신은 요청을 얻는 것으로 제한 될 것이지만, 나는 그것을 시도했고 잘 작동합니다! 또한 일하는 것도 매우 간단합니다.

자세한 내용은이 페이지의 "Cross-Domain getjson (JSONP 사용)"섹션을 참조하십시오.http://docs.jquery.com/release:jquery_1.2/ajax

그리고 여기 JSONP에 대한 배경이 있습니다.http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/

어떻게 진행되는지 알려주세요!

새로운 W3C 권장 사항은 신뢰할 수있는 당사자 간의 크로스 사이트 요청이 크로스 사이트 요청에 대한 액세스 제어 사양.

이를 위해서는 적절한 액세스 제어 HTTP 헤더와 이러한 헤더를 이해하고 작용할 수있는 브라우저를 제공하는 서버가 필요합니다.

요컨대, 원격 호스트가 도메인을 좋아한다고 말하고 브라우저가 이것이 의미하는 바를 이해하면 동일한 원산지 정책에 관계없이 해당 호스트에 대해 xmlhttprequests를 수행 할 수 있습니다.

현재이 기능을 지원하는 브라우저는 거의 없습니다. IE8은 분명히 (테스트하지 않았습니다) Firefox 3.1은 (이것을 광범위하게 테스트했습니다). 다른 브라우저가 아주 빨리 소송을 따를 것으로 기대합니다.

2012 년까지 호환 브라우저를 충분히 채택하지 않아야합니다.

이것이 문제에 대한 궁극적 인 해결책입니다. 단점은 주류 응용 프로그램에서 사용할 수 있기 전에 몇 년 동안 기다리고 있습니다.

사용되는 브라우저를 결정할 수있는 인트라넷과 같은 인트라 넷과 여러 서버가 올바른 헤더를 발행하도록 구성 할 수있는 위치와 같이 완전히 제어 할 수있는 환경 내에서 사용하는 경우 완벽하게 작동합니다.

Ben의 답변을 확장하기 위해 ... Microsoft 의이 예와 유사한 코드를 사용하여 JQuery의 JSONP 호출을 지원하기 위해 WCF 서비스를 확장했습니다.

http://msdn.microsoft.com/en-us/library/cc716898.aspx

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