Intereting Posts
Пользовательская кнопка добавления в корзину, чтобы добавить несколько товаров в корзину с количеством: woocommerce Ошибка цифровых товаров PayPal при входе в систему WooCommerce 3.0+ изменить формат столбца даты заказа администратора Как вы используете предложения IN с подготовленными операциями mysqli белый IP-адрес списка для доступа администратора WordPress wp_reset_query () не возвращается к последнему запросу? CKEditor избегает элементов html Строгий режим в PHP? Валидация laravel уникальна на двух столбцах как я могу публиковать внешнюю форму с помощью PHP? Как отключить автозагрузку jQuery по запросу Ajax в Yii? ZF2 Zend \ Db Вставка / обновление с использованием выражения Mysql (Zend \ Db \ Sql \ Expression?) как настроить папку загрузки для ckeditor + kcfinder, используя в Laravel? Как добавить пару ключевых значений в многомерном массиве без добавления индекса в php как читать файлы, сохраненные на сервере, используя php и совершать вызовы на эту php-страницу, используя ajax для отображения списка файлов

браузер игнорирует обновление заголовка из ответа ajax

В моем javascript у меня есть некоторые ajax-запросы $.getJSON({...}) для различных действий. У меня есть приложение php, которое обрабатывает эти запросы ajax. Перед обработкой фактического запроса мое приложение сначала проверяет сеанс, и в случае, если пользователь еще не вошел в систему, он отправляет сигнал обновления обратно. Что-то вроде:

 if (not logged in) { header('Refresh: 0;'); } else { //process request } 

Но клиент фактически не обновляется. Есть ли что-то, что мне не хватает, когда речь идет о запросах AJAX и заголовке обновления HTTP?

Solutions Collecting From Web of "браузер игнорирует обновление заголовка из ответа ajax"

Запросы AJAX не влияют на браузер, пока не говорят об этом. Смысл, если я получаю страницу с помощью AJAX, она возвращается, может быть, хранится в переменной, и все. После этого ничего не получается. Вам необходимо проанализировать данные о возврате и действовать соответствующим образом.

В вашем случае вы скорее вернете что-то вроде JSON, попросите клиентскую сторону проанализировать, что означают данные возврата, и действовать соответствующим образом.

я склонен делать что-то вроде:

 { "directives": { //contains directives what to do first before parsing the data "whatToDo" : "redirect" }, "payload" : { //actual page data } } 

Таким образом, файл вашего вызова в вашем запросе содержит заголовок ('Refresh: 0;'); ? Поскольку это не имеет никакого эффекта, я бы сделал, если пользователь не выполнил вход в систему с уникальной строкой:

 if (not logged in) { echo "NOTLOGGEDIN"; } else { //process request } 

а затем в запросе AJAX проверьте, вошли ли они в систему:

 $.get("someURL", function(data) { if(data == "NOTLOGGEDIN"){ //Do something } else{ //Display data } });