需求
通过配置withCredentials属性,xhr对象如果将该属性设置为true,在跨域请求时,会带上本域名和请求域名下的cookie。
添加属性
export interface AxiosRequestConfig {// ...withCredentials?: boolean}
if (responseType) {request.responseType = responseType}
demo
新增server2
const express = require('express')
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
const app = express()
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
app.use(cookieParser())
const router = express.Router()
const cors = {
'Access-Control-Allow-Origin': 'http://localhost:3000',
'Access-Control-Allow-Credentials': true,
'Access-Control-Allow-Methods': 'POST, GET, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type'
}
router.post('/more/server2', function(req, res) {
res.set(cors)
res.json(req.cookies)
})
router.options('/more/server2', function(req, res) {
res.set(cors)
res.end()
})
app.use(router)
const port = 8088
module.exports = app.listen(port)
发送请求
import axios, {AxiosError} from '../../src/index'
document.cookie = 'cookie-key=1000'
axios({
url: '/more/get',
method: 'get',
}).then(res => {
console.log(res)
}).catch((err: AxiosError) => {
console.log(err)
})
axios({
url: 'http://localhost:8088/more/server2',
method: 'post',
withCredentials: true
}).then(res => {
console.log(res)
}).catch((err: AxiosError) => {
console.log(err)
})
