首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ajax调用后访问post变量

ajax调用后访问post变量
EN

Stack Overflow用户
提问于 2016-09-21 03:17:10
回答 3查看 103关注 0票数 0

在我的应用程序中,我有一个AJAX调用,它在用户重新加载页面之前发布用户的时区(到同一个页面)(查看他们是否切换了时区)。不幸的是,我无法访问post变量。

代码语言:javascript
运行
复制
$(window).on('beforeunload', function() {
    $.ajax({
        type: "POST",
        url: "ToDoApp.php",
        data: {
            timezone: userTimeZone
        },
        dataType: 'text'
    });
});

我很确定这是因为我在AJAX调用期间重新加载了一次,然后页面实际上重新加载了一次。然而,我已经绕了一个小时,似乎解决不了我的问题。

如何在页面重新加载后获得时区变量?

如果有更好的方法来彻底解决这个问题,我愿意接受建议。

更多信息:

我需要服务器端的时区变量来执行时区转换,因此我进行了AJAX调用。以下是我的意见:

因此,这里的困境是:我认识到时区是更好的计算客户端,我正在使用Moment.JS,但我需要时区变量来做服务器-side时区转换,以正确地显示日期给用户。这就是我认为我需要一个AJAX调用的原因,因为没有它,页面重新加载之后,我的时区将只能在客户端可用,并且我将无法执行计算。

EN

回答 3

Stack Overflow用户

发布于 2016-09-21 03:26:24

你可以使用javascript的sessionStorage..。做下面的..。

代码语言:javascript
运行
复制
//set this anywhere you want in your .js script;
sessionStorage.setItem('TheTimeZone',userTimeZone);

//get the timezone using sessionStorage
$(window).on('beforeunload', function() {
    $.ajax({
        type: "POST",
        url: "ToDoApp.php",
        data: {
            timezone: sessionStorage.getItem('TheTimeZone')
        },
        dataType: 'text'
    });
});

那应该管用。

票数 1
EN

Stack Overflow用户

发布于 2016-09-21 03:29:04

你不能。您必须编写应用程序才能在回调中访问userTimeZone值。也许只是在请求结果时返回请求变量?这样,我建议使用JSON代替文本格式。您可以从脚本ToDoApp.php返回

代码语言:javascript
运行
复制
echo json_encode(array('post'=>$_POST, result=>$result));

并以回调方式访问它们,如: data.post、data.result。

票数 0
EN

Stack Overflow用户

发布于 2016-09-21 04:03:47

代码语言:javascript
运行
复制
$(window).on('beforeunload', function() {
    if (typeof(Storage) !== "undefined") {
      localStorage.setItem("timeZone",new Date().getTimezoneOffset());
    } else {
      // Sorry! No Web Storage support..
    }
    $.ajax({
        type: "POST",
        url: "ToDoApp.php",
        data: {
            // new Date().getTimezoneOffset() gives clients timezone
            timezone: localStorage.getItem("timeZone")
        },
        dataType: 'text'
    });
});

欲了解更多信息:时区w3school

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39606962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档