2013-01-17 1 views
0

안녕하세요 저는 spring3.0 편안한 webservice.i에서 일하고 있습니다. 동일한 서버 (즉, 내 weblogic 서버)에서 메소드를 호출 할 때 내 메소드를 호출 할 수 있습니다.하지만 원하는 경우 consume \ 다른 서버 (예 : 내 jboss 서버)에서 동일한 방법을 누른 다음 weblogic 서버에 내 휴식 방법을 때리지 않습니다.다른 서버에서 편안한 서비스를 호출

아래의 코드에서이 코드는 내가 weblogic jsp 페이지에서 작성하고 그것을 returnig 날 올바른 값이며 내 웹 page.but에 동일한 표시 할 수 있습니다 JBoss 서버에서 JSP로 동일한 코드를 복사하는 경우 (내 휴식 서비스에 액세스하는 내 다른 프로젝트) 다음 그것은 내 방법을 타격하지 않습니다. --------------------------------------- 아래

$.ajax({ 
    url: "http://test.abc.org:7001/SpringRestService/restful/products/ALL/ALL/ALL/ALL.json", 
    type: "GET", 
    processdata: true, 
    dataType: "json", 
    contentType: "application/json;", 
    beforeSend: function() { }, 
    headers : 
    { 
     "Content-Type" : "application/json", 
     "Accept" : "application/json", 
     "Access-Control-Allow-Origin":"http://its-ims002.neahq.nearoot.org:7001/" 
    }, 
    success: function (data) 
    {    
      bindEvent.loadGridData(data); 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) 
    { 
     try 
     { 
      alert(JSON.stringify(XMLHttpRequest) + "\n" + textStatus + "\n" + errorThrown); 
     } 
     catch (ex) { alert("Exception occured.. "); } 
     finally { } 
    } 
}); 

은 내 내가 weblogic 서버에 보관 한 자바 코드와이 코드는 jboss 서버에서 내 아약스 호출을 사용하여 공격해야합니다. 경우이가 '동일 기원 정책'

을 위반으로

--------------------------------- 



@Controller 
public class HelloWorldController1 { 

@RequestMapping(value = "/products/{userName}/{year}/{status}/{stateId}", method = RequestMethod.GET,consumes="application/text") 
    public ModelAndView getTextFromURL(@PathVariable("userName") String userName, @PathVariable("year") String year, 
      @PathVariable("status") String status, @PathVariable("stateId") String stateId) { 
     List<Abc> list= new ArrayList<Abc>(); 

     list= service.products(userName, year, status, stateId); 

     ProductList productList = new ProductList (list); 

     ModelAndView mav = new ModelAndView(); 
     mav.setViewName("index1"); 
     mav.addObject("list", productList); 

     return mav; 

    } 

} 

답변

0

당신이 비록 '액세스 - 제어 - - 원산지 허용'다른 (보스) 서버에 지정된를, 브라우저는 이것을 허용하지 않을 수 있습니다 서비스가 json을 반환하면 json으로 "dojo.io.script"와 같은 스크립트 유틸리티를 사용하거나 JavaScript가 '같은 출처 정책'에 의해 영향을받지 않음으로써 쉽게이 작업을 수행 할 수 있습니다.

json이 아니라면 "dojo.io.iframe"이외의 다른 옵션이 없을 수도 있습니다. 이 도움이되기를 바랍니다.

EDIT : 서비스가 JSON을 반환하는 것을 확인했습니다. dojo.io.script를 사용해 보셨습니까? 또는 귀하의 JS 프레임 워크가 가지고있는 다른 유사한 유틸리티.