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?
>
>
>