2015-01-22 3 views
0

오전 JQuery와JSON 응답 데이터

를 사용하여 크로스 도메인 요청을
function getTrackingWigetURL() { 
$.ajax({ 
url: 'http://anotherdomain/getdetails', 
dataType: 'jsonp', 
jsonpCallback: 'MyJSONPCallback', 
success: function(data){ 
alert(data); 
},error: function(response){ 
alert(response); 
} 
}); 
} 

내 컨트롤러 코드는 서버 호출이 괜찮

@RequestMapping(value = "/getdetails") 
public @ResponseBody 
String getdetails(HttpServletRequest request, HttpServletResponse response) { 
return "test"; 
} 

입니다. 하지만 실행 후에는 항상 오류 블록에 들어갑니다. 오류 블록에 경고 된 "데이터"에 컨트롤러에서 보낸 내 응답 데이터가 없습니다. 하지만 방화범이 끌려 조사 할 때 해당 요청의 응답이 컨트롤러에서 보낸 응답 텍스트임을 알 수 있습니다. 내가 어디를 놓쳤는가 또는 잘못했는지 파악할 수 없다.

+0

jsonp 출력이 아닙니다. CORS가 출력을 가능하게한다면 json을 보낼 수도 있습니다. http://enable-cors.org – charlietfl

+0

JSONP가 아닙니다. 수신 도메인이 지원하지 않는 한 [동일 원산지 정책] (http://en.wikipedia.org/wiki/Same-origin_policy) –

+0

에 의해 차단됩니다. @Rory McCrossan은 내 서버를 만드는 방법을 알려줍니다. 그러한 요청에 응답합니까? – june

답변

0

이것은 실제적으로 Same Origin Policy와 관련되어 있으므로 브라우저에 보안 규칙이 적용된다. 이러한 경우 처리 할 수 ​​

두 가지 방법 :

주 .0 - 나는 단지 공식 스프링 지원을 지적하고있다.

+0

수신 API가 CORS와 JSONP를 모두 사용해야 함을 잊지 마십시오. 제 3 자 측에서 지원하지 않으면 코드를 변경할 수 없습니다. –