我有一个简单的ajax代码,用于保存会话中的类别和子类别ID。这两个变量保存在会话中,但在下次重新加载时,会话中不存在这两个值。 此会话问题仅适用于ajax。我有其他点我存储和检索会话,它是工作文件。 这是我的ajax电话。
$("#search-select-category").on("click", function () {
console.log("sending ajax");
$.ajax({
type: "POST",
url: $("#select-category-search").prop('action'),
data: {
"_token": $("#select-category-search").find('input[name=_token]').val(),
"category_id": $("input[name='category-search']").val(),
"subcategory_id": $("input[name='subcategory-search']").val(),
},
success: function (response) {
var response = JSON.parse(response);
console.log(response.message);
if(response.error) {
console.log("error is here");
$(".search-category-error span").text(response.message);
$(".search-category-error").show();
}
else {
console.log("selection is good");
$(".search-category-error").slideDown();
$(".select-category-modal").modal('hide');
}
}
});
});
以及在ajax调用上执行的函数如下
public function ajax_select_category_search(Request $request) {
$error = false;
$message = "";
if (empty($request->category_id) || empty($request->subcategory_id)) {
$error = true;
$message = "Category or Sub Category is not selected";
}
if ($error == false) {
session(['category_search' => $request->category_id]);
session(['subcategory_search' => $request->subcategory_id]);
}
$response['error'] = $error;
$response['message'] = $message;
echo json_encode($response);
die();
}
我尝试过使用文件和数据库会话,但两种情况都有同样的问题。我正在使用laravel 5.3 会话类也在我正在使用的类中导入,并且在使用此函数时没有错误。
答案 0 :(得分:3)
原因是我在php ajax函数中有一个die()。我不知道为什么在你的ajax调用中有一个die()时删除添加的会话。但是我删除了die()并且它工作得很好。