首先关于request设置cookie需要先看uniapp官网的介绍:(h5端无法通过前端设置、修改cookie)

 

 其次设置请求头具体没有说明要求,应该是按照标准来的

代码:nodejs模拟后端(因为本地测试用两个不同的端口,需要跨域):

var ex = require('express')
var app = ex();
var url = require('url')
var parser = require('body-parser')
var cors = require('cors')


app.use(parser.urlencoded({
    extended: true
}))


app.use(cors({
    "origin": "*",
    "methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
    "preflightContinue": false,
    "optionsSuccessStatus": 204
}))

app.get('/mock1', function(req, res) {
    res.setHeader("Access-Control-Allow-Origin", "http://localhost:8080");
    res.setHeader("Access-Control-Allow-Credentials", true);
    res.header("Access-Control-Allow-Headers", "*");
    res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
    res.setHeader("Set-Cookie", '这个地方设置cookie');
    res.send({
        success: true,
        data: 123,
        cookies: 456789,
        header: {
            'Set-Cookie': 123456
        }
    });
})


app.listen(9000, () => {})

前端代码:

<template>
    <view>
        <button @click="test">click</button>
    </view>
</template>

<script>
    export default {
        methods: {
            async test() {
                await new Promise(resolve => {
                    uni.request({ //这个请求用于设置cookie
                        url: 'http://localhost:9000/mock1',
                        success() {
                            resolve()
                        }
                    })
                })
                uni.request({ //这个请求会带上cookie
                    url: 'http://localhost:9000/mock1',
                    withCredentials: true,
                })
            }
        }
    }
</script>

最终效果图:

 

 

 

 结束!

 posted on 2023-03-17 00:29  laremehpe  阅读(2228)  评论(0编辑  收藏  举报