I am developing an app front end with GWT and this connect to other app that publish AppEngine Endpoints services.
(Estoy desarrollando una aplicación front end con GWT que se conecta a otra app que publica servicios rest en AppEngine usando Google Cloud EndPoints).
But, I is generating some problems (is not allowed by Access-Control-Allow-Origin.):
(Pero, esto me esta generando algunos problemas).
The app GWT call endpoint using RequestBuilder. and the Endpoint app is other app with other domain. and both was deployed in https://appengine.google.com
(La app GWT llama a los servicios rest' endpoints' usando RequestBuilder. y la app endpoint es otra app con otro dominio. Ambas fueron deployadas en https://appengine.google.com).
Domains of the Apps:
-xappgwtx.appspot.com (GWT).
-xappendpointsx.appspot.com (Google Cloud Endpoints).
GWT Code:
public String getDevice(String id) {
String url = URL_SERVICE_BASE + "deviceendpoint/v1/device/get/" + id;
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
logger.info("::::::::::::sendRequest:::::::");
try {
builder.sendRequest(null, new RequestCallback() {
public void onResponseReceived(Request request, Response response) {
logger.info("response=" + response.getText() + " request:" + request);
resp = response.getText();
if (response.getStatusCode() == 200) {
System.out.println("response=" + response.getText());
logger.info("response=" + response.getText());
}
}
public void onError(Request request, Throwable exception) {
logger.info("onError response=" + exception.getMessage());
resp = exception.getMessage();
exception.printStackTrace();
}
});
} catch (RequestException e) {
logger.info("exception=" + e.getMessage());
e.printStackTrace();
}
return resp;
}
Chrome Console:
After much research in lists, stackoverflow and other forum, solve the problem
(Luego de mucha investigación en listas y stackoverflow llegue a solucionar el problema)
Solution: to solve this issue simply assign a variable to your json string into the eval
* Before:
public static native JavaScriptObject fromJson(String json) /*-{
return eval("(" + json + ")");
}-*/;
public final String toJson() {
return new JSONObject(this).toString();
}
protected BaseJso() {
}
* After:
public class BaseJso extends JavaScriptObject {
public static native JavaScriptObject fromJson(String json) /*-{
eval('var res = ' + json);
return res;
}-*/;
public final String toJson() {
return new JSONObject(this).toString();
}
protected BaseJso() {
}
}
References:
Comentarios
Publicar un comentario