Appliquer un filtre? (erreur Access-Control-Allow-Origin)
Salut à tous,
Je suis débutante sur GWT. J'ai un problème assez simple je pense.
Je voudrais appliquer un filtre dans le web.xml. J'ai fait comme ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
<!-- Servlets -->
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>HelloWorld.html</welcome-file>
</welcome-file-list>
<filter>
<filter-name>CORSFilter</filter-name>
<filter-class>com.tutorialspoint.server.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORSFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app> |
Voici mon filtre (server):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public class CORSFilter implements Filter {
public CORSFilter() { }
public void init(FilterConfig fConfig) throws ServletException { }
public void destroy() { }
public void doFilter(
ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("Filtre");
((HttpServletResponse)response).addHeader(
"Access-Control-Allow-Origin", "*"
);
chain.doFilter(request, response);
}
} |
Le println ne s'affiche pas dans la console; j'en déduit qu'il n'est pas appelé. Savez vous ce que je dois faire?
Plus globalement, je veux faire une requete http sur du JSON (sur un domaine different) et j'ai l'erreur:
XMLHttpRequest cannot load URL. Origin http://127.0.0.1:49473 is not allowed by Access-Control-Allow-Origin.
Après recherches, j'essaye d'appliquer ce tuto:http://padcom13.blogspot.com/2011/09...lications.html
Coté client j'ai codé ca:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static void doGet(String url) {
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
builder.setHeader("Access-Control-Allow-Origin", "*");
try {
Request response = builder.sendRequest(null, new RequestCallback() {
public void onError(Request request, Throwable exception) {
// Code omitted for clarity
}
public void onResponseReceived(Request request, Response response) {
Window.alert("Success " + response.getText());
}
});
} catch (RequestException e) {
// Code omitted for clarity
}
}
public void onModuleLoad() {
doGet(url);
System.out.println("Bonjour");
}
} |
Peut etre il y a t-il un moyen plus efficace ou plus spécifique à GWT de faire ca?
Merci d'avance pour votre aide :D