Проверьте, была ли страница выбрана с помощью POST - PullRequest
2 голосов
/ 01 февраля 2011

Есть ли способ, с помощью javascript, проверить, была ли страница результатом запроса POST или GET?

Причина в том, что у меня есть страница поиска sharepoint, куда мы вставили пользовательский javascript дляавтоматически выбрать конкретное значение.Для новых поисков это не проблема, но поскольку следующие / предыдущие страницы результатов реализованы с использованием обратной передачи, значение будет сброшено, а следующие страницы получат другой результат, если значение было изменено.

Пример: значение по умолчаниюэто «Выбрать» (= нет значения).Наш скрипт устанавливает его на «Значение 1».Новый пользователь заходит на страницу поиска, меняет ее на «Значение 2» и выполняет поиск.Когда он возвращает результаты, наш скрипт устанавливает его обратно на «Значение 1», а когда он нажимает «Далее», он получает результаты для страницы 2 для поиска «Значение 1» вместо «Значение 2».

Решение состоит в том, чтобы проверить, была ли страница отправлена ​​с использованием POST, и сбросить значение только в том случае, если это не так.

Ответы [ 3 ]

4 голосов
/ 01 февраля 2011

Нет, JavaScript не может обнаружить такую ​​вещь.

То, что вы можете сделать - это вставить какой-то "флаг" в JS из кода:

void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "post_back_flag", "var _postBack = true;", true);
    }
}

Затем проверьте этот флаг в вашем коде JS.

2 голосов
/ 01 февраля 2011

Вы можете использовать свойство Page.IsPostBack на стороне сервера, чтобы избежать генерации сбрасываемой части клиентского скрипта во время обратных передач:

protected void Page_PreRender(object sender, EventArgs e)
{
    if (!IsPostBack) {
        // Render the script that resets the selection to "Value 1".
    }

    // Render the rest of the script.
}
1 голос
/ 01 февраля 2011

Я думаю, что простой ответ заключается в том, что если бы это был запрос POST, вы не могли бы получить доступ к переменным через JavaScript.Не можете ли вы проверить URL для строки запроса, и если она есть, то это был запрос GET?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...