Передача http URL в качестве переменной метода get - как? - PullRequest
0 голосов
/ 06 мая 2011

Я пытаюсь сделать это:

http://somehost.net/edit.php?url=http://www.youtube.com/watch?v=EgHY53dOZ-U

Запрещено

У вас нет прав доступа к edit.php на этом сервере.

Есть ли способ исправить это через javascript (jquery), потому что я передаю аргумент через вызов ajax.

Я пробовал это так, но безуспешно:

$('#videofrm').load('edit.php?url='+encodeURI($(this).siblings('a').attr('href'))

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Вы должны исправить проблемы chmoding на сервере.

Edit

Что делает ваш edit.php?Если это перенаправление в другое место?затем введите URL-адрес результата перед перенаправлением.

Вы можете подписаться на Tomalak Geret'kal, если хотите / можете переписать .htaccess.в противном случае вам нужно передать URL без части http:// и добавить http:// в edit.php

0 голосов
/ 06 мая 2011

Если у вас нет разрешения на доступ к edit.php, то не имеет значения, сколько разных способов вы пытаетесь его запросить: у вас нет разрешения.

Исправьте разрешения на сервере, вероятно, используя chmod, если сервер работает в Linux.


Обновление

У вас проблема с конфигурацией сервера. Я могу воспроизвести проблему только при передаче строки :// внутри строки запроса.

Попробуйте написать AllowEncodedSlashes On в вашей конфигурации httpd согласно этому вопросу / ответу .

Затем вам необходимо убедиться, что вы правильно закодировали свой URI:

http://somehost.net/edit.php?url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv=EgHY53dOZ-U

(похоже, ваш encodeURI вызов должен позаботиться об этой части)

AllowEncodedSlashes позволяет слешам присутствовать в строке запроса до тех пор, пока они кодируются, что по какой-то причине не по умолчанию. В документах говорится, что ошибка дает 404, а не 403, но я все еще думаю, что это причина.

Если вы не можете управлять параметрами конфигурации для своего веб-сервера, обходные пути включают в себя:

  • Выбор заменяющего термина для http://, например http!!!, который вы будете программно возвращать в сценарии PHP;
  • Если вы всегда используете http:// (в отличие от, скажем, ftp:// или некоторого локального пути), просто полностью оставьте его вне строки запроса и добавьте его перед входом в ваш PHP-скрипт (предпочтительный обходной путь) .

Надеюсь, это поможет.

...