이 문제는 정말 나를 미치게한다. 나는 java 웹 애플리케이션을 가지고있다 : appA는 json 형식의 일부 객체 (이미지가 들어있는)를 반환하는 REST 서비스를 게시하고 appB는 소비한다. 서비스 및 이미지를 보여줍니다. 내 로컬 컴퓨터에서 작동하지만 (CORS 오류가 표시되지만) 이제는 웹 환경 (Layershift)을 사용하고 "NetworkError : 404 Not Found - http://app-demo.j.layershift.co.uk/myservice/get/c80e9306105f4448?callback=myCallback&_=1477167892656"이 표시됩니다.
나는 많이 읽었습니다. CORS 및 JSONP의 예제 중 일부는 있지만 내 코드에 무엇이 잘못되었는지 알 수 없으므로 아무도 힌트를 제공 할 수 있습니까? APPA에서JSONP 호출을 할 수 없다
컨트롤러 : APPA에
@RestController
public class MyController {
@RequestMapping(value="/myservice/get/{somevar}")
public @ResponseBody MyObject getMyObject (@PathVariable String somevar, HttpServletRequest request, HttpServletResponse response) {
MyObject obj = new MyObject();
//some logic
return obj;
}
}
ControllerAdvice : appB에서 JSONP 호출로
@ControllerAdvice
public class JsonpAdvice extends AbstractJsonpResponseBodyAdvice {
public JsonpAdvice() {
super("myCallback");
}
}
는 자바 스크립트 코드 :
어떤 도움을 주시면 감사하겠습니다
(function($) {
function myCallback(data) {
if (data.status == "OK") {
//shows the image contained
}
}
$.fn.callWithJsonP = function(somevar) {
$.ajax({
url: "myservice/get/" + somevar,
type: 'GET',
dataType: "jsonp",
jsonpCallback: "myCallback"
});
};
})(jQuery);
는
에 관하여 추신 : 또한 지시문을 추가하려고 "헤더 추가 Access-Control-Allow-Origin "*" "을 Apache에서 사용하지만 동일한 결과가 나타납니다.
404는 존재하지 않는 끝점에 액세스하려고한다는 것을 의미합니다. 올바른 URL을 사용하고 있습니까? –
안녕하세요 @ JoeAttardi, 예, URL이 정확합니다. – maxivis
왜 'jsonp'를 사용하고 계시나요? 다른 도메인에 있습니까? 또한 나는 ajax url이'/ "myservice/get /"+ somevar "와 같이 시작 /''을 가질 필요가 있다고 생각한다. 'applicationContext'가 필요합니다 – brk