У меня есть страница php с формой, которая имеет кнопку. Когда нажимается кнопка, запускается функция jquery, которая выполняет некоторые проверки валидации, а затем отправляет форму с помощью ajax. В php-скрипте, запущенном ajax, установлен файл cookie. Immediatly после того, как cookie установлен, я затем попытаюсь получить значение cookie, которое я эхо от скрипта и выплюнул в функции успеха запроса ajax. Значение cookie не установлено.Настройка Cookie с запросом Ajax
Код выглядит следующим образом.
mainpage.php
<script type="text/javascript">
$(document).ready(function()
{
$('#submit_compare_stage1').click(function()
{
//Validation stuff
if (passed_validation)
{
var form_data = $('#compare_form').serialize(); //Collect query details into a form
$.ajax({
type: "POST",
url: "scripts/process_compare.php",
data: form_data,
success: function(data)
{
alert(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
//Error stuff
}
});
}
return false;
});
});
</script>
<form name="compare_form" id="compare_form" action="">
....
<button id='submit_compare_stage1' name='submit_compare_stage1'>Next</button>
</form>
process_compare.php
<?php
//MySQL Stuff
makeCookie('cs', '2');
echo 'hi' . getCookie('cs', false);
echo "success";
function makeCookie($name, $contents, $length = 3600)
{
// Create a new cookie
setcookie($name, $contents, time() + $length, '/');
}
function getCookie($name, $delete = true)
{
// Return the contents of a cookie and delete it if requested
$contents = $_COOKIE[$name];
if($delete) {
setcookie($name, '', time() - 3600, '/');
setcookie($name, '', time() - 3600);
}
return $contents;
}
?>
запрос Аякса вывешивает предупредительные сообщения говорят "hisuccess", так что куки не установлен.
Я не уверен, что это потому, что страница нуждается в обновлении или что-то еще, но я знаю код, используемый для работы, когда мы регулярно отправляли форму с помощью action = "/ process_compare.php" и iframe to вносить результаты.
Может ли кто-нибудь помочь?
Неужели вы попробовали запустить скрипт (на стороне сервера), если сгенерирован какой-либо файл cookie? –
извините, я не понимаю. Это определенно работает сценарий, потому что он печатает бит «успех» эха. –
Я имел в виду ваш process_compare.php напрямую без ajax и пытаюсь эхом печенье, если оно там. Путь, который вы правильно установили как/который должен быть доступен через весь домен. –