I'm trying to connect two web applications. The parent that would be the application made with GWT and the child that would be a small application in JSP.
When the other is called from the parent application, I am getting this message from the console:
In the application with JSP, I have put a CORS Filter with Jersey, and it is set like this:
What would be the required headers to achieve this?
This is how I'm requesting this webservice in Smart GWT:
UPDATE
Did a test in soap UI and I'm getting the Access-Control-Allow-Origin header....

Feel like something is missing when I call the webservice from SmartGWT ...
When the other is called from the parent application, I am getting this message from the console:
Access to XMLHttpRequest at 'http: // localhost: 8080 / report-viewer / rest / request / execution? Isc_rpc = 1 & isc_v = v11.1p_2017-10-09 & isc_xhr = 1' from origin 'http: // localhost: 7001' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Code:
Configuration config = PropertiesUtil.getProperties(); if (request.getHeaderString("Origin") == null) { return; } if (isPreflightRequest(request)) { response.getHeaders().add("Access-Control-Allow-Credentials", "true"); response.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); response.getHeaders().add("Access-Control-Allow-Headers","x-requested-with, Content-Type, If-Modified-Since"); } response.getHeaders().add("Access-Control-Allow-Origin", config.getString("external.host.url")); // http://localhost:7001
This is how I'm requesting this webservice in Smart GWT:
Code:
DataSource requestReport = new DataSource(); Map<String, String> httpHeaders = new HashMap<String, String>(); httpHeaders.put("Content-Type", "text/html"); httpHeaders.put("Accept", "application/x-www-form-urlencoded"); Map<String, String> formparam = new HashMap<>(); formparam.put("username", "username"); formparam.put("pass", "password"); formparam.put("type", type); formparam.put("fileUri", fileUri); if(parameters != null && parameters.length() > 0) { formparam.put("params", parameters); } OperationBinding fetch = new OperationBinding(); fetch.setOperationType(DSOperationType.FETCH); fetch.setDataProtocol(DSProtocol.POSTMESSAGE); DSRequest dsRequest = new DSRequest(); dsRequest.setHttpMethod("POST"); dsRequest.setActionURL("http://localhost:8080/report-viewer/rest/request/execution"); dsRequest.setContentType("application/x-www-form-urlencoded"); dsRequest.setHttpHeaders(httpHeaders); fetch.setRequestProperties(dsRequest); requestReport.setOperationBindings(fetch); final HTMLPane htmlPane = new HTMLPane(); htmlPane.setHeight100(); htmlPane.setWidth100(); htmlPane.setContentsType(ContentsType.PAGE); requestReport.fetchData(null, new DSCallback() { @Override public void execute(DSResponse dsResponse, Object data, DSRequest dsRequest) { Map map = dsResponse.getHttpHeaders(); String url = map.get("cont-url").toString(); htmlPane.setContentsURL(url); } });
Did a test in soap UI and I'm getting the Access-Control-Allow-Origin header....
Feel like something is missing when I call the webservice from SmartGWT ...
Comment