Вот уже пол дня мучаюсь из передачей данных через УРЛ с помощью AJAX
Использую кодировку UTF-8
var url = "http://site.ua/ajax/photo/"+code+p_photosId[i];
if (code==3) url+="/"+encodeURIComponent(text);
photoXmlHttp.open("GET",url,true);
photoXmlHttp.setRequestHeader("Content-type", "text/xml;charset=UTF-8"); //даже кодировку GET`а задал :D
photoXmlHttp.send(null);
photoXmlHttp.onreadystatechange = function() {...
И вот я смотрю через ФаєрБаг следующую картину:
1. Запрос по адресу http://site.ua/ajax/photo/3191/%20some%20text%2F%2F%0A
как бы в оригинале это " some text//"
2. Отвечает мне сервер доброжелательным сообщением:
The requested URL /ajax/photo/3191/ some text// was not found on this server.
а вот почему именно так??
А да... у меня единственная точка входа, все идет на index.php, а потом в зависимости от УРЛа подключаются разные странички. Так вот, этот запрос к index.php не доходит(
Спустя 13 минут, 8 секунд (3.10.2011 - 00:02) Winston написал(а):
А если попробовать переписать так
Или сделать проверку типа
Поэкспериментировать с добавление слешей...
var url = "http://site.ua/ajax/photo/" + code + '/' + p_photosId[i] + '/';
if(code==3)
url += encodeURIComponent(text);
Или сделать проверку типа
var url = "http://site.ua/ajax/photo/" + code + '/' + p_photosId[i] + '/';
alert(url);
if(code==3)
url += encodeURIComponent(text);
alert(url);
Поэкспериментировать с добавление слешей...
Спустя 9 минут, 49 секунд (3.10.2011 - 00:11) Romms написал(а):
Да вот если дописать к УРЛу "%2f" то есть "/" только в обработке encodeURIComponent() то и серевер начинает матерится...
значит у нас неправильный редирект в .htaccess...
То есть посылаем юзера на index.php если указана не дериктория и не файл... а вот когда я его спрашиваю "http://site.ua/ajax/photo/3191/%20some%20text%2F%2F%0A" он думает что это директорию я его спросил и отвечает соответственно.
Как быть?
-------
количество простых "/" не играет никакой роли...
значит у нас неправильный редирект в .htaccess...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
То есть посылаем юзера на index.php если указана не дериктория и не файл... а вот когда я его спрашиваю "http://site.ua/ajax/photo/3191/%20some%20text%2F%2F%0A" он думает что это директорию я его спросил и отвечает соответственно.
Как быть?
-------
количество простых "/" не играет никакой роли...
Спустя 12 минут, 10 секунд (3.10.2011 - 00:24) Winston написал(а):
Цитата (Romms @ 3.10.2011 - 00:11) |
а вот когда я его спрашиваю "http://site.ua/ajax/photo/3191/%20some%20text%2F%2F%0A" он думает что это директорию я его спросил и отвечает соответственно. |
some text я так понял, что это имя картинки? А так как ты не указываешь расширение он и думает, что это директория.
Может попробовать расширение приписать ?
Спустя 9 минут, 33 секунды (3.10.2011 - 00:33) Romms написал(а):
Winston, да нет. Это просто запрос к серверу, передача данных о фото.
если после %2f задать расширения .php или что то иное, то єто никакой роли не имеет.
а если запросить существующий файл http://сайт.ua/imgs/ok.png следующим образом: http://matvei.ua/imgs%2fok.png, то сервер отвечает: The requested URL /imgs/ok.png was not found on this server.
если после %2f задать расширения .php или что то иное, то єто никакой роли не имеет.
а если запросить существующий файл http://сайт.ua/imgs/ok.png следующим образом: http://matvei.ua/imgs%2fok.png, то сервер отвечает: The requested URL /imgs/ok.png was not found on this server.
Спустя 6 минут, 28 секунд (3.10.2011 - 00:40) Winston написал(а):
Значит нужно как-то добиться того, чтобы слеши не были url-кодированными
http://matvei.ua/imgs/ok.png
Спустя 55 секунд Winston написал(а):
URL-Кодировать нужно любые данные, но не слеши.
http://matvei.ua/imgs/ok.png
Спустя 55 секунд Winston написал(а):
URL-Кодировать нужно любые данные, но не слеши.
Спустя 11 минут, 22 секунды (3.10.2011 - 00:51) Romms написал(а):
Winston,
Єто мне звучит типа так: а вот чтобы здесь двери поставить нужно фундамент на камни положить... а том то уже соорудили
Но я не верю что у меня одного така проблема... неужели никто не передавал с помощью AJAX произвольный текст где были допустимыми "/" ??
А можно как-то настроить апатч на иной способ "парсирования" урла? Вожзможно там нужно что-то типа кодировки указать?

Єто мне звучит типа так: а вот чтобы здесь двери поставить нужно фундамент на камни положить... а том то уже соорудили

Но я не верю что у меня одного така проблема... неужели никто не передавал с помощью AJAX произвольный текст где были допустимыми "/" ??
А можно как-то настроить апатч на иной способ "парсирования" урла? Вожзможно там нужно что-то типа кодировки указать?



Спустя 6 часов, 55 минут, 7 секунд (3.10.2011 - 07:46) Romms написал(а):
Самое печальное, а может и радостное, что убрав
(то есть всегда посылать на индекс.пхп) до нас так и не доходит этот запрос :blink:
я в заблуждении... неужели баг? Баг апача... Почему? Ведь в .htaccess есть строка
на которую сервер при нашем запросе не обращает внимания... буду обновлять апатч :unsure:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
(то есть всегда посылать на индекс.пхп) до нас так и не доходит этот запрос :blink:
я в заблуждении... неужели баг? Баг апача... Почему? Ведь в .htaccess есть строка
ErrorDocument 404 /404.html
на которую сервер при нашем запросе не обращает внимания... буду обновлять апатч :unsure:
Спустя 7 часов, 40 минут, 22 секунды (3.10.2011 - 15:26) Romms написал(а):
up!