uni-app 获取 cookie 问题
<p>在 PC 端的时候,对于后端返回的 cookie 我们是不用进行处理的。</p><p>浏览器会自动读取 response header 中的 set-cookie 信息保存,并在后续的 request 中带上。</p>
<p>但是在做小程序时,由于不能自动解析、带上 cookie 所以需要自己手动处理 cookie。</p>
<p>在使用 uni-app 时,uni.request 的 success 返回的参数有下面两个可以读取 cookie。</p>
<p><img src="https://img2020.cnblogs.com/blog/592961/202105/592961-20210531142901125-1438628288.png" alt="" loading="lazy"></p>
<h2 id="_label0">一、header</h2>
<p>header 中能够读取到 ‘Set-Cookie’,的信息。可以直接读取这个值。</p>
<div class="cnblogs_code">
<pre>response.header['Set-Cookie']</pre>
</div>
<p>这有个问题,如果服务端一次返回多个 cookie 的话这种方式是不能获取多个的。</p>
<h2 id="_label1">二、cookies</h2>
<p>cookies 正好可以解决上面的问题。</p>
<p>cookies 是一个数组,就是服务器返回的 cookie 的集合。</p>
<p>所以使用 cookies 更方便。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">if</span> (res.cookies && res.cookies.length>0<span style="color: rgba(0, 0, 0, 1)">) {
res.cookies.map(cookie</span>=><span style="color: rgba(0, 0, 0, 1)">{
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 对 cookie 遍历操作</span>
<span style="color: rgba(0, 0, 0, 1)"> })
} </span></pre>
</div>
<h2 id="_label2">三、小程序 cookie 差异</h2>
<p>这里主要说微信小程序、钉钉小程序。</p>
<p><span style="font-size: 18px"><strong>1、微信小程序</strong></span></p>
<p>微信小程序还是比较统一的,在开发者工具、Android、IOS 上面都需要手动获取,在发送请求的时候在 request 的 header 中带上</p>
<p><span style="font-size: 18px"><strong>2、钉钉小程序</strong></span></p>
<p>钉钉小程序各个端都有差异:</p>
<p>开发者工具:可以自己读取 response 中的 cookie,并在 request 的 header 中带上</p>
<p>Android 端:可以自己读取 response 中的 cookie,并在 request 的 header 中带上</p>
<p>IOS 端:无法读取,并且 response 结构改变(获取不到里面的值),必须在返回的 data 中带回需要的 token(或者别的需要信息)。</p><br><br>
来源:https://www.cnblogs.com/zhurong/p/14831361.html
頁:
[1]