проблема с '/' в параметрах REST URL для вызова Ajax - PullRequest
1 голос
/ 04 июня 2010
var url     = relativeURI+'/rest/PPS/Prod/'+encodeURIComponent(prod)+'/Section/'+encodeURIComponent(section);

$j.ajax({
  url: url,

  type: 'POST',

  error: function(){
    alert('Error');
  },
  success: function(){
   alert('ItWorks');
  }
});

}

В этом вызове ajax, если у меня есть '/' в параметрах prod или sec, то возникает ошибка. Запрос даже не попал на сервер. Я использую encodeURIComponent над параметрами. Он отлично работает для других параметров, которые не имеют '/' в них. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 04 июня 2010

Я закодировал параметры и попробовал не-jQuery маршрут, где он работает нормально (использовал RESTEasy). Когда я удаляю косую черту, я получаю ответ 404, что означает, что с этим URI нет метода REST.

0 голосов
/ 04 июня 2010

Я повторил вашу логику, и запрос отправляется на сервер. Однако, если серверу не нравится URL, то ваш код на стороне сервера даже не будет вызван. (В моем случае не было никакого кода на стороне сервера, но я вижу ответ 404 и вижу, что сервер - Apache - расшифровал URL).

Так что, возможно, ваш сервер не может декодировать URL. Вы уверены, что закодировали его, когда попробовали не-jquery маршрут? Возможно, вам не нужны звонки encodeURIComponent. Что произойдет, если вы удалите их?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...