当前位置: 澳门新濠3559 > 服务器运维 > 正文

有的时候要传很多参数,淘宝的url是加了密的

时间:2019-12-08 19:30来源:服务器运维
本文实例讲述了js简单设置与使用cookie的方法。分享给大家供大家参考,具体如下: 用js来设置cookie有什么好处呢?在前端进行操作时,有的时候要传很多参数,这个时候,我们可以把

本文实例讲述了js简单设置与使用cookie的方法。分享给大家供大家参考,具体如下:

用js来设置cookie有什么好处呢?在前端进行操作时,有的时候要传很多参数,这个时候,我们可以把这些参数拼接到url后面进行传值,那边在接收参数,不过这样挺麻烦的,如果把这些数据放到cookie里面,就开发者的开发效率来说,我想会高一些,以淘宝为例,他有一级分类,二级分类,三级,四级,我们找商品的时候,可能会牵扯到很多条件,如果把这些条件都放到cookie里面,就方便多了。

post请求,ajax传入的参数
获取的时候为ctx.request.body

一、js设置cookie的用处

 

get请求,ajax传入参数
获取的时候为ctx.request.query.参数名

php可以设置cookie的,用js来设置cookie有什么好处呢?在前端进行操作时,有的时候要传很多参数,这个时候,我们可以把这些参数拼接到url后面进行传值,那边在接收参数,不过这样挺麻烦的,如果把这些数据放到cookie里面,就开发者的开发效率来说,我想会高一些,以淘宝为例,他有一级分类,二级分类,三级,四级,我们找商品的时候,可能会牵扯到很多条件,如果把这些条件都放到cookie里面,我感觉就方便多了,不知道淘宝是不是这样的。淘宝的url是加了密的,并且好长,有可能是根在url的后面。费话不多说看一个小例子。

  • JS对Cookie的读取

    //取得cookie
    function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';'); //把cookie分割成组
    for(var i=0;i < ca.length;i++) {
    var c = ca[i]; //取得字符串
    while (c.charAt(0)==' ') { //判断一下字符串有没有前导空格
    c = c.substring(1,c.length); //有的话,从第二位开始取
    }
    if (c.indexOf(nameEQ) == 0) { //如果含有我们要的name
    return unescape(c.substring(nameEQ.length,c.length)); //解码并截取我们要值
    }
    }
    return false;
    }

    //清除cookie
    function clearCookie(name) {
    setCookie(name, "", -1);
    }

    //设置cookie
    function setCookie(name, value, seconds) {
    seconds = seconds || 0; //seconds有值就直接赋值,没有为0,这个根php不一样。
    var expires = "";
    if (seconds != 0 ) { //设置cookie生存时间
    var date = new Date();
    date.setTime(date.getTime()+(seconds*1000));
    expires = "; expires="+date.toGMTString();
    }
    document.cookie = name+"="+escape(value)+expires+"; path=/"; //转码并赋值
    }

    调用一下上面方法:

    setCookie("test","tank",1800); //设置cookie的值,生存时间半个小时
    alert(getCookie('test')); //取得cookie的值,显示tank
    clearCookie("test"); //删除cookie的值
    alert(getCookie('test')); //test对应的cookie值为空,显示为false.就是getCookie最后返的false值。

  • C#对Cookie的读取

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;

koa-csrf
可以设置什么请求的时候除外,这样除外的请求就不要求必须传csrf 了

二、js实例

public class Cookie
{
    /// <summary>
    /// Cookies赋值
    /// </summary>
    /// <param name="strName">主键</param>
    /// <param name="strValue">键值</param>
    /// <param name="strDay">有效天数</param>
    /// <returns></returns>
    public bool setCookie(string strName, string strValue, int strDay)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(strDay);
            Cookie.Value = strValue;
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }

    /// <summary>
    /// 读取Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>

    public string getCookie(string strName)
    {
        HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies[strName];
        if (Cookie != null)
        {
            return Cookie.Value.ToString();
        }
        else
        {
            return null;
        }
    }

    /// <summary>
    /// 删除Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>
    public bool delCookie(string strName)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(-1);
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }
}

koa mongoose始终报错FormModel is not defined
但是明明定义了,这时候就要看大小写了,当创建一个model实例的时候,往往会起和model实例一样的名称,这时一定要区分大小写,或者干脆起一个别的名称,否则就是千年巨坑,一直报错找不到!!!!

//取得cookiefunction getCookie { var nameEQ = name + "="; var ca = document.cookie.split; //把cookie分割成组 for(var i=0;i < ca.length;i++) { var c = ca[i]; //取得字符串 while  { //判断一下字符串有没有前导空格 c = c.substring; //有的话,从第二位开始取 } if  == 0) { //如果含有我们要的name return unescape(c.substring(nameEQ.length,c.length)); //解码并截取我们要值 } } return false;}//清除cookiefunction clearCookie { setCookie;}//设置cookiefunction setCookie { seconds = seconds || 0; //seconds有值就直接赋值,没有为0,这个根php不一样。 var expires = ""; if  { //设置cookie生存时间 var date = new Date(); date.setTime+; expires = "; expires="+date.toGMTString(); } document.cookie = name+"="+escape+expires+"; path=/"; //转码并赋值}

 

Model.findById(id, function (err, doc){}
id是字符串或者ObjectId格式的

调用一下上面方法:

  • 示例

    Cookie Cookie = new Cookie(); Cookie.setCookie("name", "aaa",1);//赋值 Cookie.getCookie("name");//取值 Cookie.delCookie("name");//删除 注意:当Cookie存中文出现乱码,则在存放时给中文编码,如Cookie.setCookie("name", Server.UrlEncode("aaa"),1),读取时解码即可

mongoose
批量删除记录:
Movie.remove({ _id: { $in: ['aID', 'bID'] } });
多条件查询同理:
Movie.find({ _id: { $in: ['aID', 'bID'] } });
行内事件写方法名必须加引号

setCookie; //设置cookie的值,生存时间半个小时alert; //取得cookie的值,显示tankclearCookie; //删除cookie的值alert; //test对应的cookie值为空,显示为false.就是getCookie最后返的false值。
另外:只要不给cookie设置过期时间,cookie在浏览器关闭的时候自动失效 

ctx.type = 'text/plain; charset=utf-8';

希望本文所述对大家JavaScript程序设计有所帮助。

 

发现:get请求传递参数都为字符串,如果传递的是一个数组,他会自动变为 []=1&[]=2...... 参数名称在后台中存的格式为idArr[],nodejs不好获取,可以改为post方式传递

koa引入静态文件资源,要在app.js中用koa-static注册静态资源路径

koa-session
key 其实就是值存的这个session叫什么名,

ctx.cookies.get() and ctx.cookies.set() 设置和获取其他cookie
浏览器cookie存储有字节限制,所以可以通过redis、mongo或者其他数据库来做一个store库存储session

cookie中的sessionid是session识别客户端的一种方式
还可以通过url等方式

koa设置前端cookie
ctx.cookies.set('username','')
ctx.cookies.set('userId','')

编辑:服务器运维 本文来源:有的时候要传很多参数,淘宝的url是加了密的

关键词: