You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Shashank Dutt Jha <sh...@gmail.com> on 2015/12/02 06:45:33 UTC

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.

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?

Re: MLHttpRequest cannot load

Posted by Shashank Dutt Jha <sh...@gmail.com>.
If I send request from chrome advance rest client app, it works. So it
looks like some headers have to be set.


If I have following header
 var headers = {
                    'Access-Control-Allow-Origin': '*',
                    //'Origin': '*',
                    'Access-Control-Allow-Methods': 'POST, GET, OPTIONS,
PUT',
                    'Content-Type': 'text/plain',
                    'Accept': 'text/plain'
                    //'Accept': 'application/json, text/javascript'
                };
                //var headers = {
                //    'Accept': 'application/json, text/javascript',
                //    'Content-Type': 'application/json; charset=utf-8'
                //};
                var response = $http({
                    method: "GET",
                    headers: headers,
                    url: 'http://localhost:9001/office/offices/123',
                    'X-Requested-With': 'XMLHttpRequest'

It works for java rest client as well chrome rest app. But not for browser/
web app.

If I comment out anything, it doesn't works out for java rest client.

On Sat, Dec 5, 2015 at 4:35 PM, Shashank Dutt Jha <sh...@gmail.com>
wrote:

> Changed the code to:
> (allowOrigins with * or with http://localhost:56696
>
> @Path("/office/")
> public class OfficeOffice {
>
>
> @GET
> @CrossOriginResourceSharing(allowAllOrigins = true, allowOrigins = "*",
> allowCredentials = true)
> @Path("/offices/{id}/")
> @Produces("text/plain")
> public String getCustomer(@PathParam("id") String id) {
> return "Systems";
> }
>
> }
>
> Tested for Chrome and IE.
>
> In IE it works. In Chrome request is reaching service. and response is
> returned but in browser shows same error message
>
> XMLHttpRequest cannot load http://localhost: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.
>
> On Fri, Dec 4, 2015 at 4:48 PM, Sergey Beryozkin <sb...@gmail.com>
> wrote:
>
>> 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 <shashank.dj@gmail.com
>>> >
>>> 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 <
>>>> shashank.dj@gmail.com>
>>>> 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 <sberyozkin@gmail.com
>>>>> >
>>>>> 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 <
>>>>>>> shashank.dj@gmail.com>
>>>>>>> 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/
>>
>
>

Re: MLHttpRequest cannot load

Posted by Shashank Dutt Jha <sh...@gmail.com>.
Changed the code to:
(allowOrigins with * or with http://localhost:56696

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


@GET
@CrossOriginResourceSharing(allowAllOrigins = true, allowOrigins = "*",
allowCredentials = true)
@Path("/offices/{id}/")
@Produces("text/plain")
public String getCustomer(@PathParam("id") String id) {
return "Systems";
}

}

Tested for Chrome and IE.

In IE it works. In Chrome request is reaching service. and response is
returned but in browser shows same error message

XMLHttpRequest cannot load http://localhost: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.

On Fri, Dec 4, 2015 at 4:48 PM, Sergey Beryozkin <sb...@gmail.com>
wrote:

> 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 <sh...@gmail.com>
>> 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 <
>>> shashank.dj@gmail.com>
>>> 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 <sb...@gmail.com>
>>>> 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 <
>>>>>> shashank.dj@gmail.com>
>>>>>> 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/
>

Re: MLHttpRequest cannot load

Posted by Sergey Beryozkin <sb...@gmail.com>.
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 <sh...@gmail.com>
> 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 <sh...@gmail.com>
>> 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 <sb...@gmail.com>
>>> 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 <
>>>>> shashank.dj@gmail.com>
>>>>> 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/

Re: MLHttpRequest cannot load

Posted by Shashank Dutt Jha <sh...@gmail.com>.
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 <sh...@gmail.com>
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 <sh...@gmail.com>
> 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 <sb...@gmail.com>
>> 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 <
>>>> shashank.dj@gmail.com>
>>>> 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/
>>>
>>
>>
>

Re: MLHttpRequest cannot load

Posted by Shashank Dutt Jha <sh...@gmail.com>.
@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 <sh...@gmail.com>
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 <sb...@gmail.com>
> 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 <
>>> shashank.dj@gmail.com>
>>> 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/
>>
>
>

Re: MLHttpRequest cannot load

Posted by Shashank Dutt Jha <sh...@gmail.com>.
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 <sb...@gmail.com>
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 <shashank.dj@gmail.com
>> >
>> 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/
>

Re: MLHttpRequest cannot load

Posted by Sergey Beryozkin <sb...@gmail.com>.
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 <sh...@gmail.com>
> 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/

Re: 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.

Posted by Shashank Dutt Jha <sh...@gmail.com>.
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 <sh...@gmail.com>
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?
>
>
>