Perhaps allowOrigins should be set to a wildcard ?

On 04/12/15 11:09, Shashank Dutt Jha wrote:
still same error
Error:
XMLHttpRequest cannot load http://localhost:9001/office/offices/123. No
'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:56696' is therefore not allowed access.



Service code:

@Path("/office/")
public class OfficeOffice {


@GET
@CrossOriginResourceSharing(allowAllOrigins = true, allowOrigins = "
http://localhost:56696"; ,allowCredentials = true)
@Path("/offices/{id}/")
@Produces("text/plain")
public String getCustomer(@PathParam("id") String id) {
System.out.println("Serving request to customer id\t"+id);
return "Systems";
}
}

On Fri, Dec 4, 2015 at 4:21 PM, Shashank Dutt Jha <[email protected]>
wrote:


@CrossOriginResourceSharing(
         allowOrigins = {
            "http://localhost:56696";, "*"
         },
         allowCredentials = true,
         maxAge = 1,
         allowHeaders = {
            "X-custom-1", "X-custom-2"
         },
         exposeHeaders = {
            "X-custom-3", "X-custom-4"
         }
)

@Path("/office/")
public class OfficeOffice {


@GET
@Path("/offices/{id}/")
@Produces("text/plain")
public String getCustomer(@PathParam("id") String id) {
System.out.println("Serving request to customer id\t"+id);
return "Systems";
}
}

On Fri, Dec 4, 2015 at 10:00 AM, Shashank Dutt Jha <[email protected]>
wrote:

I added following code: Still facing issue

@CrossOriginResourceSharing(
         allowOrigins = {
            "http://localhost:56696";
         },
         allowCredentials = true,
         maxAge = 1,
         allowHeaders = {
            "X-custom-1", "X-custom-2"
         },
         exposeHeaders = {
            "X-custom-3", "X-custom-4"
         }
)

@Path("/office/")
public class OfficeOffice {
int count = 0;
Object obj = new Object();
@Context
private HttpHeaders headers;

@GET
@CrossOriginResourceSharing(allowOrigins = { "http://localhost:56696"; },
allowCredentials = false, exposeHeaders = {
"X-custom-3", "X-custom-4" })
@Path("/offices/{id}/")
@Produces("text/plain")
public String getCustomer(@PathParam("id") String id) {
synchronized (obj) {
++count;
System.out.println("----invoking getCustomer, Customer id is: " + count);
}
return "Systems";
// return Response.status(Status.OK).entity("works").build();
}

// This method will do a preflight check itself
     @OPTIONS
     @Path("/")
     @LocalPreflight
     public Response options() {
         String origin = headers.getRequestHeader("Origin").get(0);
         if ("http://localhost:56696".equals(origin)) {
             return Response.ok()

  .header(CorsHeaderConstants.HEADER_AC_ALLOW_METHODS, "DELETE PUT")

  .header(CorsHeaderConstants.HEADER_AC_ALLOW_CREDENTIALS, "false")

  .header(CorsHeaderConstants.HEADER_AC_ALLOW_ORIGIN, "
http://localhost:56696";)
                            .build();
         } else {
             return Response.ok().build();
         }
     }

     @GET
     @CrossOriginResourceSharing(
          allowOrigins = { "http://localhost:56696"; },
          allowCredentials = true,
          exposeHeaders = { "X-custom-3", "X-custom-4" }
     )
     @Produces("text/plain")
     @Path("/annotatedGet/{echo}")
     public String annotatedGet(@PathParam("echo") String echo) {
         return echo;
     }

On Thu, Dec 3, 2015 at 4:51 PM, Sergey Beryozkin <[email protected]>
wrote:

Please do not copy exception traces into Subject :-)

Have a look at
http://cxf.apache.org/docs/jax-rs-cors.html

Register that filter as a provider

Sergey
On 03/12/15 11:04, Shashank Dutt Jha wrote:

I want the REST server to be accessible to web/ browser app. Which is
correct example to refer to.

On Wed, Dec 2, 2015 at 11:15 AM, Shashank Dutt Jha <
[email protected]>
wrote:

Server side code:

     protected Server() throws Exception {
          JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
          sf.setResourceClasses(CustomerService.class);
          sf.setResourceProvider(CustomerService.class,
              new SingletonResourceProvider(new CustomerService()));
          sf.setAddress("http://161.85.91.7:9000/";);
          sf.create();


-------
When I try to connect to server from chrome browser I get following
error

MLHttpRequest cannot load http://161.85.91.7:9001/office/offices/123.
Response to preflight request doesn't pass access control check: No
'Access-Control-Allow-Origin' header is present on the requested
resource.
Origin 'http://localhost:56696' is therefore not allowed access.


How to resolve this issue?






--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/







--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Reply via email to