Проблемы с кодировкой URL $ .ajax в jQuery

Я использую метод jQuery $ .ajax для отправки и получения данных в службу REST. Некоторые из URL-адресов I ' m для метода $ .ajax требует кодирования пробелов и других специальных символов.

Проблема заключается в браузерах Chrome, Safari (Webkit) и Internet Explorer. Firefox POST отправляет URL-адрес, который закодирован, но другие браузеры отправляют POST на URL, который не закодирован.

В качестве примера:

$.ajax ({
  url: "http://localhost:8080/rest/123/Product Line A/[Product Type B]",
  type: "POST",
  dataType: "json",
  data: { ... },
  success: function(...){},
  error: function(...){}
})

Firefox РАЗМЕЩАЕТ URL-адрес в следующем формате:

http://localhost:8080/rest/123/Product%20Line%20A/%5BProduct%20Type%20B%5D

Chrome, Safari и IE POSTS URL в следующем формате:

http://localhost:8080/rest/123/Product Line A/[Product Type B]

Службы REST принимают закодированный формат (Firefox) - есть ли способ сделать это согласованным для всех браузеров?

Заранее спасибо!

17
задан schone 19 December 2010 в 23:44
поделиться