Pjax.reload добавляет к url параметр id. Как убрать?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
SpleenUa
Сообщения: 46
Зарегистрирован: 2011.07.08, 12:56

Pjax.reload добавляет к url параметр id. Как убрать?

Сообщение SpleenUa »

Привет
Периодически обновляю через JS таблицу:

Код: Выделить всё

$.pjax.reload({container : '#TbStatisticsRaw', "timeout" : 10000});
Отсылается ajax запрос с дополнительным параметром, вроде как уникальный на основе (new Date).getTime() :
?_=1406718661132&_pjax=%23TbStatisticsRaw

Все бы ничего, но при этом этот параметр добавляется в адресную строку
?_=1406718661132

В интернетах пишут, что проблему вроде как решает отключение кеша:

Код: Выделить всё

$.ajaxSetup ({
cache: false
}); 
Не помогает. Куда копать?

Спасибо.
enchikiben
Сообщения: 127
Зарегистрирован: 2011.12.27, 09:02
Контактная информация:

Re: Pjax.reload добавляет к url параметр id. Как убрать?

Сообщение enchikiben »

А чем он вас смущает? без этого параметра у вас запрос может кешироваться и данные не обновлятся, чтобы его отключить вам наоборот надо сделать:
$.ajaxSetup ({
cache: true // то есть использовать кеш
});
SpleenUa
Сообщения: 46
Зарегистрирован: 2011.07.08, 12:56

Re: Pjax.reload добавляет к url параметр id. Как убрать?

Сообщение SpleenUa »

Меня смущает, что он изменяет адресную строку добавляя дополнительный параметр, которой там мало того, что не к месту, так еще и выглядит уродски =)
Я понимаю, что таким образом он закрывает проблему хеширования и обеспечивает возврат по истории, но...

Пока проблему решил прямым вызовом:

Код: Выделить всё

    $.pjax({
        type       : 'POST',
        url        : '/test/index',
        container  : '#TbStatisticsRaw',
        data       : {},
        push       : true,
        replace    : false,
        timeout    : 10000,
        "scrollTo" : false
    })
Проблему кеширования же можно решить и пихая заголовок при ответе, нет?

Код: Выделить всё

header("cache-control: no-cache");

Ну или в тот же параметр url добавлять переменную на основе (new Date).getTime()

UPD: добавление переменной в url вызова все равно приводит к изменению адресной строки при вызове $.pjax({}) Беда...
Ответить