2011-01-28 3 views
0

그래서 웹 응용 프로그램과 모바일 응용 프로그램 모두에서 액세스 할 수있는 API 공급자를 구현했습니다.웹 사이트에서 API 공급자에게 AJAX 요청을 처리하는 모범 사례

대개이 프로젝트는 대규모가 아니지만 학습 경험을 극대화하고 내가 할 수있는 곳을 괴롭 히고 싶습니다.

어쨌든, 내가 이해하는 바에 따르면 확장 성을 높이기 위해 API 공급자 서비스와 실제 웹 사이트를 별도의 도메인에 두는 것이 좋습니다. 예를 들어 트위터에는 twitter.com 및 api.twitter.com이라는 웹 사이트가 있습니다.

즉각적인 문제는 AJAX와의 도메인 간 문제를 해결하는 것입니다. 나는 그것에 대해 들었지만, 많은 이름

  • 프록시 서버를 넘어 모른다 : 내가 수집 무엇부터 ,이 크로스 도메인 AJAX

    1. JSONP를 구현하는 두 가지 방법이 있습니다, 그래서 내 웹 사이트 구축입니다 ASP.NET MVC 상단에 모든 크로스 도메인 API 요청을 처리하기 위해 APIProxy 컨트롤러를 만들려고했습니다.

    그런 식으로 $ .ajax (설정)를 통해 AJAX 호출을 한 다음 APIProxy 컨트롤러에 해당하는 웹 사이트 URL을 전달합니다. APIProxy 컨트롤러는 적절한 POST 서버 호출을 수행하고 JSON 응답을 처리 한 다음 응답을 AJAX 콜백 함수에 반환합니다.

    flXHR에 대해 들었습니다. iPad를 비롯한 많은 모바일 브라우저가 플래시를 지원하지 않기 때문에 Flash를 사용하고 싶지 않습니다.

    어쨌든 별도의 도메인이나 하위 도메인에있는 API 제공 업체 웹 사이트를 관리 할 때 가장 좋은 방법이 무엇인지 궁금합니다.

  • 답변

    2

    일부 JSON을 요청하면 객체 또는 배열을 반환합니다. 스크립트 태그는 동일한 도메인 규칙의 적용을받지 않습니다. json으로로드 할

    <script src="Http://api.example.com?param1=something&etc"></script> 
    

    을, 그리고 자바 스크립트로 실행할 것입니다 : 그래서 대신 AJAX 호출을, 당신은 기본적으로이 작업을 수행 할 것입니다.

    ...하지만 단순한 객체 또는 배열 자체가 "실행 중"인 것은 그리 유용하지 않습니다. 따라서 JSON을 요청하면 콜백 함수의 이름도 포함됩니다. 공급자가 JSON을 반환하는 대신 콜백이 제공되었다고 판단하면 실제로 JavaScript를 반환합니다. JSON이 인수로 함수에 전달됩니다.

    그런 다음 스크립트가로드되면 이미 정의한 함수가 호출되고 JSON이 작동하도록 지정됩니다.

    JSONP입니다.

    참고 문헌

    1. 뉴턴, 아론. "Request.JSONP" 고객 번호. 2009 년 12 월 7 일. 웹. 2011 년 1 월 28 일.
    +0

    JSONP를 작성해 주셔서 감사합니다! API가 POST 요청 만 수락하고 JSONP가 GET 요청 만 허용하기 때문에 JSONP의 문제는 해결되었습니다. – Abe

    관련 문제