javascript - jQuery 和 ajax 在 PHP 中设置 session 变量

标签 javascript php jquery ajax session

我在 PHP 中使用 session 变量来管理多语言站点中的当前语言。为了实现我想要的效果,我使用了一个标志图标,当单击它时 (jQuery) 它会告诉 lang_json.php 将 session 变量切换到新语言。

我在 jQuery 端没有收到错误:

var sendData =  'en';  

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "lang_json.php",
    data: ({newLang: sendData}), 
    dataType: "json",
    success: function (msg) {
      alert('Success');
    },
    error: function (err){
      alert('Error');
    }
});

但是 PHP 文件没有设置 session 变量:

lang_json.php:

<?php

// Session variables
session_name('aklogin'); // Starting the session
session_start();

if( isset($_POST['newLang']) ){
    $_SESSION['current_lan'] = $_POST['newLang'];
}else{
    $_SESSION['current_lan'] = "Not Posting";
}

?>

session 变量返回“未发布”。

最佳答案

您声称您正在发送服务器 JSON,但是:

  • 你不是
  • PHP 未设置为接收 JSON

删除 contentType: "application/json; charset=utf-8",,然后 jQuery 将设置正确的内容类型,PHP 将填充 $_POST

关于javascript - jQuery 和 ajax 在 PHP 中设置 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28388188/

相关文章:

JavaScript 反机器人措施

javascript - 根据类获取元素的Jquery索引

jquery - 更改背景图像 div

javascript - 向正则表达式添加点 (.)

java - 动态生成的 Javascript 输入字段无法被 Httpservletrequest 识别???仅在 Chrome 中?

javascript - 随机化具有浅蓝色的颜色

php - 使用 PHP exec Wget 下载文件

javascript - 何时/为何使用 map/reduce over for 循环

php - 在 PHP 中对表中的数据进行分组

php - mysqli_result 类实际获取的数据存在于何处?