Добрый день, впервые сталкиваюсь с такой ситуацией и прошу Вашей помощи.
Есть 2 файла: index.php и xml.php.
index.php:
$.ajax({
url: 'xml.php',
type: 'POST',
cache: false,
data: {table: export_t}, //html таблица
success: function(){
window.open('xml.php', 'export');
}
});
xml.php
session_start();
if(isset($_POST['table'])){ // когда пришли данные ajax
$_SESSION['table'] = $_POST['table'];
}
else{ //когда открыли страницу по завершении ajax
echo $_SESSION['table'];
}
Проблема возникает где-то в получении POST данных, т.к. остальное отрабатывает без проблем.
Итак, отправляем html таблицу через ajax, она должна быть записана в сессию и, при открытии страницы, выведена.
При ручном внесении данных в $_SESSION['table'] - все выводит нормально. При Ajax - в консоли хрома статус pending, до таймаута, заголовок: "Provisional headers are shown". Соответственно, данные в сессию не пишутся и ответ не возвращается.
P.S.: В логах пусто, ошибок нет.
P.P.S.: Проблема НЕ в сессиях, то же самое происходит, если оставить в файле xml.php только
if(isset($_POST['table'])){
echo $_POST['table'];
}
НО
if(isset($_POST['table'])){
echo 1;
}
отдает ответ.
Очень сомневаюсь и, на сколько мне известно, ограничений нет, но:
export_t.length = 6640 могут быть проблемы с отправкой длинных строк?
P.P.P.S.: как-то само все заработало после уменьшения и увеличения обратно передаваемых данных. Если есть идеи, как это произошло - мне очень интересно.