我在Chrome,IE和Safari上测试了我的应用,它可以正常工作。两天前,它在Mozzila Firefox上运行良好,但我无法确定可能出现的问题。
以下是我的js的一部分(我从亚马逊获取一些数据,使用他们的API,然后当有人选择产品时,产品详细信息应存储在会话中):
function redirectStep() {
window.location.href = Path + "createwidget/step1";
}
$(document).ready(function() {
$("#search").click(function() {
var keyword = $("#keyword").val();
var page = 1;
getContent(keyword, page);
});
$('#target').on('click', '.click', function() {
var href_value = $(this).data("href");
var img_value = $(this).data("img");
var price_value = $(this).data("price");
var title_value = $(this).data("t");
$.post(Path + "createwidget/poststep1", {
prodlink : href_value,
prodimg : img_value,
prodprice : price_value,
prodtitle : title_value
});
redirectStep();
});
});
这是我的控制器类(createwidget)的一部分:
public function poststep1() {
Session::set('index', $_POST);
$_SESSION['index']['widfee'] = 10;
$a = explode("$", $_SESSION['index']['prodprice']);
$_SESSION['index']['pricy'] = $a[1];
$_SESSION['index']['totalcost'] = $_SESSION['index']['widfee'] + $_SESSION['index']['pricy'];
}
public function step1() {
if (isset($_SESSION['index']['prodtitle'])) {
$this -> view -> render('createwidget/step1');
} else {
$this -> index();
}
}
我不知道我所做的是一个好习惯,但它适用于其他浏览器,它也适用于Firefox。我提到session_start()存在于我的文件中,只要它在其他浏览器上工作,我真的不知道这是什么问题。
更新:
这是set函数:
public static function set($key, $value) {
$_SESSION[$key] = $value;
}
答案 0 :(得分:0)
我至少看到一个问题,你在知道$.post
是否完成之前是否重定向;所以你可能会在设置会话变量之前进入第1步。
尝试将重定向功能设置为帖子的success
回调:
$.post(Path + "createwidget/poststep1", {
prodlink : href_value,
prodimg : img_value,
prodprice : price_value,
prodtitle : title_value
},
redirectStep);