gwt 응용 프로그램에서 grails 작업으로 어떻게 상호 도메인 요청을 할 수 있을지 궁금합니다. 나는 grails에 wgt-plugin이 있다는 것을 알고 있지만,이 플러그인을 사용한 개발은 너무 느리다. 왜냐하면 gwt 코드의 각 변경 후에 컴파일해야하기 때문이다. 그래서 gwt 부분을 별도로 개발하고 Ajax 요청을 통해 grais 응용 프로그램에서 데이터를 가져옵니다. 그러나 gwt 응용 프로그램은 다른 서버에서 실행 중입니다 (gwt : 포트 8888, garils : 포트 8080). 내가 Grails의 조치를 요청하려고하면 나는 브라우저에서이 오류를 얻을 : 나는에서 작업을 호출하는 경우gwt grails 크로스 도메인 요청
response.setHeader('Access-Control-Allow-Origin', "http://127.0.0.1:8888");
그리고 :
XMLHttpRequest cannot load http://localhost:8080/MyApp/MyDomain/myAction.
Origin http://127.0.0.1:8888 is not allowed by Access-Control-Allow-Origin.
내가 Grails의 활동에 응답 헤더를 수정하려고 브라우저에서 찾을 수 있습니다 :
Access-Control-Allow-Origin:http://127.0.0.1:8888
그러나 문제를 해결하지는 못합니다. 내가 뭘 잘못 했니? 사전에
감사합니다,
Medrod
UPDATE :
솔루션은 JSONP입니다.
private void jsonp() {
JsonpRequestBuilder jsonp = new JsonpRequestBuilder();
String URL = "http://localhost:8080/MyApp/myDomain/myAction";
jsonp.requestObject(URL, new AsyncCallback<JavaScriptObject>() {
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(JavaScriptObject result) {
}
});
}
을 그리고이 같은 Grails의 코드를 보면 : 는 GWT-사이트에 내 코드는 다음과 같습니다 마이크에
def myAction = {
def results = MyDomain.findAll()
render "${params.callback}(${results as JSON})"
}
감사합니다.