如何在angularjs的rest webservice调用期间使用/ in参数?

时间:2016-03-11 06:28:58

标签: angularjs rest url

我需要通过来自angularjs的rest webservice url发送类似app/role的值作为参数

在controller.js

var roleName = 'app/role';
checkRole.check({'roleName': roleName}, function(data){}

在model.js

popModel.factory('checkRole', function ($resource) {    
    return  $resource('./rest/checkRole/:roleName',{roleName:'@roleName'},{
        check: {'method':'GET'},
    });
});

java中的其余webservice调用

    @GET
    @Path("/checkRole/{roleName}")
    @Produces(MediaType.APPLICATION_JSON)
    public Response checkRole(@Context HttpServletRequest request, @PathParam("roleName") String roleName);

当我通过它时,我收到浏览器控制台错误

Bad request response from the server.

对于'Test', 'Solution', 'Application' etc等常规参数值。如果我使用/作为参数,则不会进行任何处理,我会收到错误。

1 个答案:

答案 0 :(得分:0)

/GET请求的保留字符。所以,你不能直接使用它们。如果您使用它们,则会出现Bad Request错误。

其中一个解决方案是在客户端对URL进行编码并在服务器上对其进行解码。

参考:
Characters allowed in GET parameter
How to handle special characters in url as parameter values?