View registerJsFile и GET-параметры

Уже исправленные репорты или принятые предложения
Ответить
belotur
Сообщения: 10
Зарегистрирован: 2017.05.06, 00:04

View registerJsFile и GET-параметры

Сообщение belotur » 2017.05.06, 00:28

Всем привет.
Недавно столкнулся с проблемой и при попытке её решения напоролся вот на что: при использовании registerJsFile() первый атрибут - Url (строка с Url), если в ней написать несколько GET-параметров, то амперсанды заэскейпятся (&, разумеется). Т.о., запрос ломается если у нас более одного GET-параметра.
Я попробовал воспользоваться подстроиться под параметры хелпера Url - передать массив (['//url/address', 'get1' => 'foo', 'get2' => 'bar'], но yii тут же свалился жалуясь на неуспешную попытку разрешения алиаса (т.е. ему нужна строка).

Как же быть, если есть необходимость передать скрипту несколько GET-параметров (обычно это сторонние скрипты сервисов и с ними мы ничего поделать неможем... Например, ReCaptcha от Google)?

Аватара пользователя
samdark
Администратор
Сообщения: 8367
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: View registerJsFile и GET-параметры

Сообщение samdark » 2017.05.07, 22:52

При чём тут хелпер Url? registerJsFile(), как и описано в документации, принимает готовую строку. Дайте пример кода, который работает не так.

belotur
Сообщения: 10
Зарегистрирован: 2017.05.06, 00:04

Re: View registerJsFile и GET-параметры

Сообщение belotur » 2017.05.09, 22:04

Собственно, наткнулся на проблему здесь: https://github.com/himiklab/yii2-recapt ... th=04c6e90

$arguments = http_build_query([
'hl' => $this->getLanguageSuffix(),
'render' => 'explicit',
'onload' => 'recaptchaOnloadCallback',
]);

$view->registerJsFile(
self::JS_API_URL . '?' . $arguments,
['position' => $view::POS_END]
);

попробовал и задумался, в итоговой строке были эскейпы (&) вместо амперсандов (&)...

Аватара пользователя
ElisDN
Сообщения: 4065
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: View registerJsFile и GET-параметры

Сообщение ElisDN » 2017.05.09, 23:58

Это спецификация HTML все адреса с эскейпами строить.
Не пропустите мастер-класс по Yii2.

belotur
Сообщения: 10
Зарегистрирован: 2017.05.06, 00:04

Re: View registerJsFile и GET-параметры

Сообщение belotur » 2017.05.13, 10:38

Точно, нашёлъ!

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя