我在项目(服务器javax.ws.rs.*
)中使用 AngularJS (客户端)和 REST接口。我在路径参数中传递数据。它可能包含特殊字符,因此我在发送请求之前调用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解码参数吗?据我了解(我阅读了文档),默认情况下会这样做。