Быстрый фон -
Я делаю jQuery-вызов ajax в службу, которую я написал, которая возвращает ответ JSON. Служба принимает URL-адрес веб-сайта (например, www.google.com, www.xyz.com/abc123). Формат запроса следующий:
http://www.mysite.com/[url]
... где [url] - предоставленный пользователем URL (опять же, что-то вроде www.google.com/abc)
Мне нужно, чтобы URL закодировал параметр, так как mysite.com/www.google.com выдает мне ошибки.
Моя проблема в том, что все стандартные функции кодирования javascript фактически не кодируют URL.
Пример:
<html>
<head>
<script>
document.write("encodeURIComponent = " + encodeURIComponent("www.google.com") + "<br />");
document.write("encodeURI = " + encodeURI("www.google.com") + "<br />");
document.write("escape = " + escape("www.google.com"));
</script>
</head>
<body>
</body>
... имеет следующий вывод:
encodeURIComponent = www.google.com
encodeURI = www.google.com
escape = www.google.com
Как правильно достичь этого с помощью JavaScript / jQuery?
Не думаю, что это актуально, но на всякий случай это приложение Rails 3.0.7.
РЕДАКТИРОВАТЬ ПОДРОБНЕЕ
Если www.google.com уже имеет URL-кодировку, и в моем URL-адресе (www.mysite.com/www.google.com) указаны правильные периоды, почему я получаю эту ошибку?
Из Chrome Dev Tools:
GET http://localhost:3000/s/www.google.com 404 (Not Found)
Мой фрагмент кода jQuery:
$.getJSON("http://localhost:3000/s/" + encodeURI($("#txtURL").val()), function(data) {
alert(data.result.url);
});