首页 > 解决方案 > REST 请求因 URI 编码路径参数而失败

问题描述

我在我的项目(服务器, )中使用AngularJS(客户端)和REST 接口javax.ws.rs.*。我在路径参数中传递数据。它可能包含特殊字符,因此我encodeURIComponent()在发送请求之前调用对参数进行编码。

客户端:

$http.put('/foo/data/' + encodeURIComponent(data) + '/bar');

控制器将处理请求并发送响应。

服务器端:

@PUT
@Path("/data/{data}/bar")
public ResultObject handleFooRequest(@PathParam("data") String data) throws Exception {
  return handleRequest(data);
}

这可以正常工作localhost,但是,当我在我们的生产服务器上发出请求时请求失败(错误 400:错误请求)。我做错了什么,为什么它在一台服务器上工作而在另一台服务器上失败?一般来说,我的方法正确吗?我需要告诉 RESTEasy 解码参数吗?据我了解(我阅读了文档),默认情况下它会这样做。

标签: angularjsresteasyurlencode

解决方案


推荐阅读