Cookie 允许我们在网络浏览器中存储用户数据,以便快速响应。例如,当用户在任何 Web 应用程序中打开个人资料页面时,网页都会从服务器接收数据。服务器还发送包含要存储在 Web 浏览器中的数据的 cookie。当用户再次访问个人资料页面时,它会从 cookie 中获取数据,而不是从服务器中获取数据以快速加载网页。
要获取数据,浏览器首先查看 cookie,如果没有找到 cookie 中存储的数据,则会向服务器请求。本教程将教我们如何在 JavaScript 中将 cookie 名称-值对序列化为设置的 cookie 标头字符串。
为什么我们需要序列化 cookie 名称-值对?
我们可以将cookie作为键值对存储在浏览器中,并且cookie不接受名称值对中的一些特殊字符,如下所示。
\ " / [ ] ( ) < > ? = { } @ , ; :
所以,我们需要将上面的字符替换为特殊字符的UTF-8编码。例如,我们需要用“%20”转义序列替换空格。
使用encodeURIComponent()方法在JavaScript中序列化cookie
encodeURIComponent() 允许开发人员通过用一个、两个、三个或四个转义序列替换特殊字符来对字符串进行编码。这里,转义序列代表字符的 UTF-8 编码。
语法
用户可以按照下面的语法使用encodeURIComponent()方法对URI进行编码。
encodeURIComponent(key); encodeURIComponent(value);
在上面的语法中,encodeURIComponent()方法分别获取cookies的键和值,并通过用转义序列替换特殊字符来对它们进行编码。
示例
在下面的示例中,我们创建了serializeCookies()函数,该函数将键和值作为参数。之后,我们使用encodeURIComponent()方法分别对键和值进行编码。接下来,我们使用字符串文字来分隔其键值对‘=’字符。
在输出中,我们可以观察到转义序列替换了特殊字符。
<html> <body> <h3 id="Using-the-i-encodeURIComponent-i-method-to-serialize-cookies-in-JavaScript">Using the <i> encodeURIComponent() </i> method to serialize cookies in JavaScript</h3> <div id = "output"> </div> <script> let output = document.getElementById('output'); function serializeCookies(key, value) { let serializeKey = encodeURIComponent(key); let serializeValue = encodeURIComponent(value); let serializeCookie = serializeKey + "=" + serializeValue; return serializeCookie; } output.innerHTML += "The key is name, and the value is Shubham Vora. <br>"; output.innerHTML += "After serializing the cookies key-value pair, result is " + serializeCookies("name", "Shubham Vora"); </script> </body> </html>
示例
在下面的示例中,我们创建了箭头函数来序列化 cookie。我们编写了单行函数来对键值对进行编码并返回它们。此外,我们在serializeCookies()函数的键值参数中使用了一些更特殊的字符,用户可以在输出中观察到每个特殊字符都有不同的转义序列。
<html> <body> <h3 id="Using-the-i-encodeURIComponent-i-method-to-serialize-cookies-with-arrow-functions-in-JavaScript">Using the <i> encodeURIComponent() </i> method to serialize cookies with arrow functions in JavaScript</h3> <div id = "output"> </div> <script> let output = document.getElementById('output'); const serializeCookies = (key, value) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}` output.innerHTML += "The key is key@#$12 and value is Val&^%12#$. <br>"; output.innerHTML += "After serializing the cookies key-value pair, result is " + serializeCookies("key@#$12", "Val&^%12#$"); </script> </body> </html>
示例
在下面的示例中,我们创建了两个输入字段。一种是将key作为输入,另一种是将value作为输入。之后,当用户单击提交按钮时,它会调用serializeCookies()函数,该函数访问输入值并使用encodeURIComponent()方法对它们进行编码。
<html> <body> <h3 id="Using-the-i-encodeURIComponent-i-method-to-serialize-cookies-in-JavaScript">Using the <i> encodeURIComponent() </i> method to serialize cookies in JavaScript</h3> <label for = "key"> Enter Key </label> <input type = "text" id = "key"> <br> <br> <label for = "Value"> Enter Value </label> <input type = "text" id = "Value"> <br> <br> <div id = "output"> </div> <br> <button onclick = "serializeCookies()"> Submit </button> <script> let output = document.getElementById('output'); function serializeCookies() { let key = document.getElementById('key').value; let value = document.getElementById('Value'); output.innerHTML = "The encoded key-value pair is " + `${encodeURIComponent(key)}=${encodeURIComponent(value)}` } </script> </body> </html>
在本教程中,我们学习了使用encodeURIComponent()方法序列化cookie的键值对。此外,我们还看到了序列化 cookie 的不同示例。在最后一个示例中,用户可以添加自定义输入,并观察 cookie 的编码值。
以上是如何在 JavaScript 中将 cookie 名称-值对序列化为 Set Cookie 标头字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。 1.Python以简洁语法和丰富库生态着称,适用于数据分析和Web开发。 2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安装,因为它已内置于现代浏览器中。你只需文本编辑器和浏览器即可开始使用。1)在浏览器环境中,通过标签嵌入HTML文件中运行。2)在Node.js环境中,下载并安装Node.js后,通过命令行运行JavaScript文件。

如何在Quartz中提前发送任务通知在使用Quartz定时器进行任务调度时,任务的执行时间是由cron表达式设定的。现�...

在JavaScript中如何获取原型链上函数的参数在JavaScript编程中,理解和操作原型链上的函数参数是常见且重要的任�...

在微信小程序web-view中使用Vue.js动态style位移失效的原因分析在使用Vue.js...

在Tampermonkey中如何对多个链接进行并发GET请求并依次判断返回结果?在Tampermonkey脚本中,我们经常需要对多个链...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Atom编辑器mac版下载
最流行的的开源编辑器

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

记事本++7.3.1
好用且免费的代码编辑器