我有一个浏览器版本的网络应用程序,我有一些存储在cookie中的值。现在我正在制作移动版本,似乎我的cookie无效。 是否可以在移动设备上使用Cookie?
我正在尝试执行此代码,我的php给了我一个空值:
$(document).ready(function() {
var session_lang= '<?php if(isset($_SESSION['SESS_LANGUAGE']))
echo $_SESSION['SESS_LANGUAGE'];?>';
if (session_lang!='')
{
check_and_change(session_lang);
}
});
有没有其他方法可以将数据存储在内部存储器中,以便它可以作为cookie工作? 移动设备是否支持会话变量?我正在查看firebug,我可以看到我可以创建会话变量但是当我想要读它时它是null。 可能是什么问题以及如何解决这个问题?
编辑: 我会给你几乎整个代码,这样你就可以看到我在做什么......顺便说一句。此代码在PC浏览器上正常运行。
Javascript文件:
$(document).ready(function() {
function languageChange()
{
var lang = $('#websites1 option:selected').val();
return lang;
}
$('#websites1').change(function(e) {
var lang = languageChange();
var dataString = 'lang=' + lang;
$.ajax({
type: "POST",
url: "pass_value.php",
data: dataString,
dataType: 'json',
cache: false,
success: function(response) {
check_and_change(response.message);
}
});
return false;
});
} );
function check_and_change(lang)
{
switch (lang)
{ //do something
}
}
然后我在上面提到的第一部分是在我正在寻找的实际php网站上,它正在打开:
最后一件事是pass_value.php:
<?php
session_start();
$_SESSION['SESS_LANGUAGE'] = $_POST['lang'];
print json_encode(array('message' => $_SESSION['SESS_LANGUAGE']));
die();
?>
我真的不知道为什么这段代码无法在手机上运行。
答案 0 :(得分:6)
Cookie definitely work。你说“我正在寻找萤火虫”,这让我觉得你并不是真的在手机上看它。
答案 1 :(得分:0)
我有类似的情况并发现,在我的平板电脑调用我在.ajax( )
调用的URL参数中指定的脚本之前,它实际上是再次调用index.php
脚本。
与我的手机相同。由于我在index.php
中初始化了会话变量,因此它们不断重新设置为初始值(看起来它们在页面之间没有正确存储)。
我从未弄清楚为什么index.php
被重新调用,但我在初始化语句周围添加了if !isset( )
个检查并清除了它。
答案 2 :(得分:-1)
在Android上,启用&#34; Data Saver&#34;有效地破坏了我的会议我有一个登录脚本,当登录成功时将重定向到上一页。工作直到我打开Data Saver。关闭它使它再次工作。 Google确实声明Data Saver可能会影响安全页面,我猜这些页面包含我的脚本,而不是在HTTPS网站上。