来自Web客户端的HTTP Get Request失败

时间:2015-12-02 05:56:27

标签: rest cxf

我正在使用 cxf.jaxrs apache-cxf-3.1.4编写我的REST服务器。 客户:角js

适用于Chrome Advance Rest Client应用和Java rest客户端。但是网络应用程序失败了,

服务器代码:

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

资源代码:

class BCD {

@GET
@CrossOriginResourceSharing(allowAllOrigins = true, allowOrigins = {"http://localhost:56696", "http://localhost:9001", "*"}/*, allowCredentials = true*/,allowHeaders="*")
@Path("/offices/{id}/")
@Produces("text/plain")
    public String getCustomer(@PathParam("id") String id) {
        ObjectMapper om = new ObjectMapper ();
        return om.writeValueAsString("ABC");
    }

客户端错误: XMLHttpRequest无法加载http://localhost:9000/office/offices/123。对预检请求的响应没有通过访问控制检查:否'访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' http://localhost:56696'因此不允许访问。

在网络应用中:

index.html代码

$ scope.sendName = function(){             var headers = {                 &#39;访问控制 - 允许 - 来源&#39;:&#34; &#34;,                 &#39;访问控制 - 允许 - 标题&#39;内容类型,X-Requested-With&#39;,                  &#39;访问控制 - 允许 - 方法&#39;:&#39; POST,GET,OPTIONS,PUT&#39;,                 &#39;内容类型&#39;:&#39; application / json;字符集= UTF-8&#39 ;,                 &#39;接受&#39; <&#39; / *&#39; };

        var response = $http({
            method: "GET",
            headers: headers,
            url: 'http://localhost:9001/office/offices/1',
            responseType: "json"
        }).success(function (data) {
            console.log("Auth.signin.success!")
        }).error(function (data, status, headers, config) {
            console.log("Auth.signin.error!")
        });

如何解决此问题

0 个答案:

没有答案