2012-02-03 3 views
1

전체 HTTP 동사 (GET, POST, PUT)를 사용할 수 있도록 자바 스크립트에서 도메인 간 요청을 만드는 가장 편리하고 효율적인 (확장 가능한) 방법을 찾고 있습니다. , DELETE)를 요청합니다. 문제는 데이터 저장 및 API가 여러 개의 작은 서버에 분산되어 있고 순수한 자바 스크립트로 작성된 웹 서비스를 제공하는 서버 하나 또는 두 개를 가질 수있는 경량 아키텍처입니다.RESTful 요청 만들기 Javascript의 도메인 간

JSONP, 서버 측 프록 싱 (확장 가능 여부는 확실하지 않음) 및 iframe 프록 싱과 함께 해본 적이 있지만,이 모든 것이 필요하지는 않습니다. 이러한 요청을 일반 호출로 변환하기 위해 API가 호스팅하는 특수 기능입니다. 짜증나는 작업없이이 기능을 사용할 수있는 방법이 있습니까? 아니면 하나만 붙어 있습니까?

(나는 또한 PostMessage를 보았다,하지만 여전히 완전히 지원되지 및 HTTP 동사를 지정할 수 없다는 동일한 문제를 제공합니다.)

+0

대부분의 브라우저와 상호 운용이 가능한 도메인 간 요청의 경우 익숙한 JSONP를 사용해야합니다. 다른 마법의 총알이 있는지 묻고 있습니까? – jfriend00

답변

2

당신이 원하는 것은 CORS하지만 브라우저 지원은 여전히 ​​상당히 제한 . MDC는 Access-Control-Allow-Origin 헤더를 포함하는 최상의 documentation입니다.

기본 흐름은 브라우저가 비행 전 OPTIONS 요청을 수행하고 서버가 액세스를 허용하는 헤더로 응답하며 브라우저가 전체 요청을합니다.

+1

"상당히 제한적인 지원"[being] (http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing#Browser_support) IE8, FF3.5, Chrome 3, Safari 4, Opera 12 또는 [전체 중 90 % 이상] 브라우저] (http://gs.statcounter.com/#browser_version-ww-monthly-201201-201202-bar) - 즉, 제한되지 않습니다. – josh3736

+1

지원 : 56.29 % 부분 지원 : 29.52 %. GET과 POST에 제한되고 싶지 않다면, 56 %가 걸릴 것입니다. - http://caniuse.com/cors – abraham

+1

29 %는 IE 8 & 9입니다. IE 8 & 9는 대신에 XDomainRequest를 사용해야합니다. 모든 다른 브라우저와 마찬가지로 일반 XHR. 기능이 [제한된 하위 집합] (http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx) 기능을 갖추고 있습니다. 그러나 그것은 아무것도 아닌 것보다 낫습니다. IE의 또 다른 경우는 IE입니다. – josh3736