jQuery / Ajax:如何在重定向后调用目标页面上的函数

时间:2015-06-30 04:52:55

标签: javascript jquery ajax redirect location

我是Ajax的新手和一般的编程,希望有人可以帮助我。

我在登录页面上使用以下内容。 这用于注册新用户,如果注册成功,将自动将其转发到索引页面。

到目前为止,一切都按预期工作。 如何从此处或之后调用目标索引页面上的jQuery函数? 我要做的是向用户显示一条警告,告诉他们在注册成功后会自动登录 - 所以此警报只会出现在索引页面上,如果有人从登录页面重定向到那里

我可以扩展下面的链接来传递一个变量(例如“&origin=login”),然后使用PHP来处理索引页面上的那个,但这似乎是一个很大的解决方法,我想知道这是否可以使用Ajax可以更轻松地实现。

我做了一些研究,发现了一些对Ajax的引用但没有明确的指导原则 有人可以帮我这个吗?

我的Ajax(在jQuery中):

case 'registration successful':     
    $.ajax({        
        type: "post",   
        url: "ajax.php",
        cache: "false",
        data: {
            node: 'loginUser',
            email: email,
            pass: pass
        },
        success: function(data){
            // redirect to index page
            window.location.href = baseURL + '/index.php?lang=' + selectedLang;
            // after the redirect I would like to show an alert on the targeted index page
        }
    });
    break;

非常感谢, 麦克

3 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,您可以使用localStorage在重定向后显示alert,如下所示:

$.ajax({        
        type: "post",   
        url: "ajax.php",
        cache: "false",
        data: {
            node: 'loginUser',
            email: email,
            pass: pass
        },
        success: function(data){
            //set a localStorage item
            localStorage.setItem('showAlert','true');
            // redirect to index page
            window.location.href = baseURL + '/index.php?lang=' + selectedLang;
            // after the redirect I would like to show an alert on the targeted index page
        }
});

并在index页面中,在script标记或任何已加载的js文件中写下代码:

$(document).ready(function(){
    var showalert=localStorage.getItem('showAlert');
    if(showalert==='true')
    {
          //show the alert
          localStorage.setItem('showAlert','false'); //set its value back to false;
    }
});

关于 localStorage

的一点解释
  
      
  • 它存储没有过期日期的数据。
  •   
  • 本地存储更安全,可以存储大量数据   本地,不影响网站性能。
  •   

<强>更新

对于您当前的要求sessionStorage可能适合您,因为您只想在用户登录时存储数据,并希望在注销时清除它。用法类似于localStorage,而不是localStorage.getItemlocalStorage.setItem,您可以使用sessionStorage.setItemsessionStorage.getItem

那么sessionStorage

是什么
  

sessionStorage对象作为窗口对象的属性存在   支持浏览器(目前是Firefox 3 +,Safari 4+和Internet)   资源管理器8+)。您可以将数据放在sessionStorage对象上   只要该窗口(或标签)打开,该数据就会持续存在。甚至   如果您离开存储数据的页面然后离开   导航回来,保存到sessionStorage的数据仍然可用。   存储在sessionStorage中的任何数据都与协议,主机名,   和页面的端口保存信息,只有页面共享   相同的协议,主机名和端口可以在以后访问该数据。

您可以详细了解sessionStorage here

答案 1 :(得分:1)

你可以在JS中读取查询字符串(你不必使用PHP)。

我之前使用过这个功能:

function GetQueryStringParams(sParam)
{
    var sPageURL = window.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++) 
    {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) 
        {
            return sParameterName[1];
        }
    }
}

使用localStorage可能会导致旧浏览器出现问题。如果你不得不避免使用查询字符串我建议你使用cookie。

this should show you how

答案 2 :(得分:0)

module.exports = {
    print: function (filterValue) {
       console.log('filter value is', filterValue);
    }
};