2013-02-28 5 views

답변

11

JSON은 데이터 형식을 읽고 이동합니다.

JSON은 데이터를 나타내는 형식입니다. 처음에는 JavaScript로 정의되었지만 API가 데이터를 표현할 수있는 실질적인 방법이되었습니다. 대부분의 언어에는 JSON 구문 분석을위한 라이브러리가 있습니다. 이 형식에 대한 자세한 내용은 http://json.org/을 참조하십시오. 다음 예를 JSON 객체이다 :

{ 
    "key": "value" 
} 

JSON-P 자바 스크립트에 데이터를로드하기위한기구이다. 다른 도메인의 데이터를로드하기 위해 브라우저의 same-origin policy을 우회합니다. 이 작업은 페이지에 JavaScript script을 삽입하여 수행합니다. 이 스크립트는 JavaScript 함수로 래핑 된 데이터를 반환하는 원격 도메인을 호출합니다. 이 함수가 브라우저로 돌아 오면 호출 코드가 데이터에 액세스 할 수 있도록 실행됩니다.

이름에 "JSON"이라는 단어가 있지만 JSON-P가 JSON과 반드시 ​​작동하지 않아도된다는 점에 유의하십시오. 예를 들어 문자열이나 다른 유효한 JavaScript 데이터 형식을 사용자에게 반환 할 수 있습니다.

JSON-P는 모든 브라우저에서 작동하지만 브라우저의 동일 출처 정책을 해결하기위한 해킹이며 일부 제약이 있습니다. 예를 들어 GET 요청 만 발행 할 수 있으며 호출자는 응답 헤더에 액세스 할 수 없습니다. 브라우저와 자바 스크립트는 맞춤식이므로 JSON-P는 서버 측 Python과 같은 다른 언어의 데이터에 액세스하는 데 실제로 적합하지 않습니다.

현재 JSON-P에 대해 자세히 알아볼 수 있습니다 : http://en.wikipedia.org/wiki/JSONP

CORS를 크로스 도메인 요청을 만들기위한 표준화 된 메커니즘입니다. most modern browsers에서 지원됩니다. 클라이언트는 표준 XmlHttpRequest 객체를 사용하여 CORS 요청을합니다. 요청을 수신하면 서버는 도메인 간 요청이 허용되는지 여부를 결정합니다. 허용되면 서버는 응답을 클라이언트로 전달할 수있는 특수 헤더를 발행합니다. 당신은 찾을 수

는 CORS 여기 스펙 : http://www.html5rocks.com/en/tutorials/cors/

이러한 모든 기술이 ASP.NET MVC 무관 : http://www.w3.org/TR/cors/ 당신이있어 CORS를 사용하는 방법에 대해 자세히 알아볼 수 있습니다. 이러한 기술을 사용하려면 먼저 "도메인에서 데이터에 액세스해야합니까?"라고 자문 해보십시오. 대답이 "예"이면 "지원해야하는 브라우저/플랫폼은 무엇입니까?"가장 최근의 브라우저"라면 CORS 구현을 고려해야합니다. 그렇지 않으면 JSON-P를 사용해야합니다.

3

CORS는 최신 브라우저에서 JSONP를 사용하지 않고 JSONP와 관련이없는 사양입니다. 일반 XMLHttpRequest 호출을 사용하여 도메인 간 요청을 가능하게합니다.

Here's an overview 작동 방식 및 사용 방법 Firefox 3.5 이상, Safari 4 이상, Chrome 3 이상, Internet Explorer 8 이상 및 anything else using one of the same engines에서 사용할 수 있습니다. JSON-P와 CORS이 메커니즘/데이터에 대한 크로스 도메인 요청을 만들기위한 프로토콜 동안 자세한 내용

http://json-p.org/

+0

감사합니다. @JanDvorak, 저는 계속 기억합니다 : –

+0

그러면 JSONP 대신 CORS를 사용해야합니다. 내 asp.net MVC에서 .. –

+0

당신은해야하고 대답으로 동의하는 것을 잊지 마세요. 안부 Logged –