Я использую 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 для декодирования аргументов?Насколько я понимаю (я прочитал документацию), он делает это по умолчанию.