Javascript JSON 对象的值 "undefined"
Value of Javascript JSON obj "undefined"
嘿,我得到这个响应查询 API 节点获取:
{
'access-control-allow-credentials': 'true',
'access-control-allow-headers': 'Origin, Content-Type, Accept, Authorization, X-Request-With, Webpunch-App-Version, X-timezone, X-token',
'access-control-allow-methods': 'POST, GET, OPTIONS, PUT, DELETE',
'access-control-allow-origin': 'censored',
'access-control-max-age': '86400',
'cache-control': [ 'no-store, no-cache, must-revalidate', 'no-cache, private' ],
'content-encoding': 'gzip',
'content-type': 'application/json',
date: 'Sun, 29 May 2022 13:04:49 GMT',
expires: 'Thu, 19 Nov 1981 08:52:00 GMT',
pragma: 'no-cache',
'set-cookie': [
'QWFMSESSION=censored; path=/; secure; HttpOnly',
'api_session=meJMkISigaS2dcHK7kKBzFjWyY4zHiQHnyKOiix4; expires=Sun, 05-Jun-2022 13:04:49 GMT; Max-Age=604800; path=/; secure; httponly; samesite=lax'
],
'strict-transport-security': 'max-age=15724800; includeSubdomains; preload',
'transfer-encoding': 'chunked',
vary: 'Accept-Encoding',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '1; mode=block'
}
并希望获得 'api_session' 令牌值。当我尝试使用 result['set-cookie']
时,它 returns 未定义。当我尝试使用 JSON.parse(JSON.stringify(result))
时,它 returns 是一个空白数组。但是当我复制结果并将其粘贴到另一个 js 文件时,它可以正常工作...这是我的代码:
fetch('censored', {
method: 'POST',
headers: {
censored
},
body: censored
})
.then(async (res) => {
return [await res.json(), res.headers];
})
.then(([jsonData, result]) => {
console.log(result['set-cookie'])
})
.catch((err) => {
// handle error
console.error(err);
});
fetch('')
.then(async (res) => {
return [await res.json(), res.headers];
})
.then(([jsonData, result]) => {
console.log(jsonData['set-cookie'])
})
.catch((err) => {
// handle error
console.error(err);
});
您需要从 jsonData
而不是结果
中读取
结果包含请求 headers
如果你想从 header 得到 api-session
试试这个
fetch('')
.then(async (res) => {
return [await res.json(), res.headers];
})
.then(([jsonData, result]) => {
console.log(result.get('api_session'))
})
.catch((err) => {
// handle error
console.error(err);
});
嘿,我得到这个响应查询 API 节点获取:
{
'access-control-allow-credentials': 'true',
'access-control-allow-headers': 'Origin, Content-Type, Accept, Authorization, X-Request-With, Webpunch-App-Version, X-timezone, X-token',
'access-control-allow-methods': 'POST, GET, OPTIONS, PUT, DELETE',
'access-control-allow-origin': 'censored',
'access-control-max-age': '86400',
'cache-control': [ 'no-store, no-cache, must-revalidate', 'no-cache, private' ],
'content-encoding': 'gzip',
'content-type': 'application/json',
date: 'Sun, 29 May 2022 13:04:49 GMT',
expires: 'Thu, 19 Nov 1981 08:52:00 GMT',
pragma: 'no-cache',
'set-cookie': [
'QWFMSESSION=censored; path=/; secure; HttpOnly',
'api_session=meJMkISigaS2dcHK7kKBzFjWyY4zHiQHnyKOiix4; expires=Sun, 05-Jun-2022 13:04:49 GMT; Max-Age=604800; path=/; secure; httponly; samesite=lax'
],
'strict-transport-security': 'max-age=15724800; includeSubdomains; preload',
'transfer-encoding': 'chunked',
vary: 'Accept-Encoding',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '1; mode=block'
}
并希望获得 'api_session' 令牌值。当我尝试使用 result['set-cookie']
时,它 returns 未定义。当我尝试使用 JSON.parse(JSON.stringify(result))
时,它 returns 是一个空白数组。但是当我复制结果并将其粘贴到另一个 js 文件时,它可以正常工作...这是我的代码:
fetch('censored', {
method: 'POST',
headers: {
censored
},
body: censored
})
.then(async (res) => {
return [await res.json(), res.headers];
})
.then(([jsonData, result]) => {
console.log(result['set-cookie'])
})
.catch((err) => {
// handle error
console.error(err);
});
fetch('')
.then(async (res) => {
return [await res.json(), res.headers];
})
.then(([jsonData, result]) => {
console.log(jsonData['set-cookie'])
})
.catch((err) => {
// handle error
console.error(err);
});
您需要从 jsonData
而不是结果
结果包含请求 headers
如果你想从 header 得到 api-session
试试这个
fetch('')
.then(async (res) => {
return [await res.json(), res.headers];
})
.then(([jsonData, result]) => {
console.log(result.get('api_session'))
})
.catch((err) => {
// handle error
console.error(err);
});