使用CORS使用post和data进行角度ajax调用不起作用

时间:2015-05-23 07:53:28

标签: jquery ajax json angularjs

我用json作为输入和输出调用restful java服务,这允许CORS调用

我在以json格式发送参数时遇到了问题

get工作正常,没有参数的帖子也工作正常,但发布一些数据(有效负载),因为键值不起作用

不知道这个问题是什么,尝试以多种形式发送数据但仍然没有运气,是ajax调用或服务文件的问题,还是端口号或浏览器的问题?或任何配置问题?

这是示例java服务代码:

@Path("/getNotes")
        @POST
        @Consumes(MediaType.APPLICATION_JSON)
        @Produces(MediaType.APPLICATION_JSON)
        public Response getStates(Countries countries) {

        logger.info("In UserRegistration Controller");
        return Response.status(200).header("Access-Control-Allow-Origin", "*")
                .header("Access-Control-Allow-Headers", "Content-Type")
                .header("Access-Control-Allow-Methods", "POST,OPTIONS")
                .entity(userService.getStates(countries.getCountryId()))
                .build();

    }

和js代码:

callLocal: function (callback) {
                alert("in function");

               // $http.post('http://domain//server/rest/dashboard/Notes')//post with out any data //working fine giving output and output format is jsu a string not in json
                var payload = {"noteId": 251};
                $http({method: "POST",
                    crossDomain: true,
                    url: "  http://domain/server/rest/register/getnotes",
                   dataType: 'json',
                    //contentType: "application/json;charset=utf-8",
                    //processData: true,
                    // data: JSON.stringify({"noteId": 251}),
                    data: {"noteId": 251},
                    //data: $.param({"noteId": 251}),
                    //data: $.param(payload),
//                    headers: {
//                    'Content-Type': 'application/json; charset=utf-8'
//        }
                   // headers: {'Content-Type': 'application/json'}
                    //   header("Access-Control-Allow-Origin", "*")
                    //  .header("Access-Control-Allow-Headers", "Content-Type")
                    //  .header("Access-Control-Allow-Methods", "POST,OPTIONS")
headers: {
         'Access-Control-Allow-Origin': '*',
                    'Content-Type': 'application/json; charset=utf-8'
        }
                })
                       .success(function (data) {
                            alert("S");
                            alert(JSON.stringify(data));
                            callback(data);
                        })
                        .error(function (data, status, headers, config) {
                            alert("No data json"+status);
                            console.log(status);
                        });

            }

状态响应为:0,控制台错误为

XMLHttpRequest无法加载http://domain/server/rest/register/getnoteId。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://www.domain.net'因此不允许访问。

0 个答案:

没有答案