node.js - NodeJs 403 提供的身份验证对 Resource AUTH HEADER ISSUE 无效
问题描述
我是 NodeJs 的新手,并且对 NodeJs 有一些了解,我编写了以下代码以基本上从 Azure 租户获取访问令牌,然后在随后的 GET 请求中通过 AXIOS 使用相同的访问令牌来查询客户端 ID 机密所在的 Azure 资源已创建(已授予权限的 APP 注册)。我能够获得访问令牌,但不幸的是,下一个 GET 请求失败并出现 403,并且相同的代码在 Powershell 中运行良好,我确信我在 Get Request 标头或其他配置中犯了一些小错误,有什么帮助吗?以下是 Node.Js 代码:-
const axios = require('axios');
const oauth = require('axios-oauth-client');
const qs = require('qs');
const APP_ID = 'XXXXXXXXXXXXXX';
const APP_SECERET = 'YYYYYYYYY';
const TOKEN_ENDPOINT ='https://login.microsoftonline.com/MyTenantIDGUID/oauth2/token?api-version=1.0';
const MS_GRAPH_SCOPE = 'Data.Read';
const resource ='https://api.loganalytics.io';
var responseval = "";
const postData = {
client_id: APP_ID,
scope: resource,
client_secret: APP_SECERET,
grant_type: 'client_credentials'
};
axios.defaults.headers.post['Content-Type'] =
'application/x-www-form-urlencoded';
axios
.post(TOKEN_ENDPOINT, qs.stringify(postData))
.then(function(response){
//console.log(response);
responseval= 'Bearer ' + response.data.access_token;
console.log ( responseval)
//Instance created below now for Log Analytics calls and passing the Access Token
var baseUrlLogAnl = 'https://api.loganalytics.io/v1/workspaces/MyLogAnalytisWorkspaceGUID/query?query=externalapistatus_CL';
var config ={headers: { 'Authorization': responseval, 'Content-Type': 'application/json' }};
axios.get(baseUrlLogAnl,config)
.then(function(response){
console.log (response)
})
.catch(function (err){
console.log(err.response);
});
})
.catch(function (err){
console.log(err.response);
});
执行上述代码后,结果如下,一件事表明授权标头被 AXIO AGET 和 CONTENT-TYPE 弄乱了,不知道如何修剪它:
Authorization:
'Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZwQSJ9.eyJhdWQiOiJzcG46MDAwMDAwMDItMDAwMC0wMDAwLWMwMDAtMDAwMDAwMDAwMDAwIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvZmEwNjE5ODItYTgxMC00YjQ4LTg5OGYtZGYzZTc2MWNlNzI3LyIsImlhdCI6MTU3ODc1NTg5MCwibmJmIjoxNTc4NzU1ODkwLCJleHAiOjE1Nzg3NTk3OTAsImFpbyI6IjQyTmdZQWdzMjMvdkc3dk5pNTZVVS8zMkVScFNBQT09IiwiYXBwaWQiOiIyNTMyNWY1ZC0yMWI1LTRkMmYtYWE4Ny1jMjYyNmZlZjU2OGQiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTA2MTk4Mi1hODEwXXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZwLThmOGUtM2QyZGFhYzgzZDIzIiwidGVuYW50X3JlZ2lvbl9zY29wZSI6Ik5BIiwidGlkIjoiZmEwNjE5ODItYTgxMC00YjQ4LTg5OGYtZGYzZTc2MWNlNzI3IiwidXRpIjoiaXRxTU5FN3dRMG11aUdySDVzTlBBQSIsInZlciI6IjEuMCJ9.UoOWozRlYhrkQMzFEUGWZJxEueN_2TRlR96SmhZt5M03BRxpqzlazRXaqWAz8qnHQvSCWVdZZtV96UWU_mbMxIzoSnIBGCUvDphUMh0OIJNFTy3-xD6NgAAhhm904-7yF2mnLQu0dFq06DmTNMk0XXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZhMbhZeHs7D9U0Xi1Dcw6dHbwbfgn-zThudKTXVfxFxv0KakinWdzGXkLlH_BHvAKrYw',
**'Content-Type': 'application/json',
'User-Agent': 'axios/0.19.1'** },
这是完整的输出:-
Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZwQSJ9.eyJhdWQiOiJzcG46MDAwMDAwMDItMDAwMC0wMDAwLWMwMDAtMDAwMDAwMDAwMDAwIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvZmEwNjE5ODItYTgxMC00YjQ4LTg5OGYtZGYzZTc2MWNlNzI3LyIsImlhdCI6MTU3ODc1NTg5MCwibmJmIjoxNTc4NzU1ODkwLCJleHAiOjE1Nzg3NTk3OTAsImFpbyI6IjQyTmdZQWdzMjMvdkc3dk5pNTZVVS8zMkVScFNBQT09IiwiYXBwaWQiOiIyNTMyNWY1ZC0yMWI1LTRkMmYtYWE4Ny1jMjYyNmZlZjU2OGQiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTA2MTk4Mi1hODEwXXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZwLThmOGUtM2QyZGFhYzgzZDIzIiwidGVuYW50X3JlZ2lvbl9zY29wZSI6Ik5BIiwidGlkIjoiZmEwNjE5ODItYTgxMC00YjQ4LTg5OGYtZGYzZTc2MWNlNzI3IiwidXRpIjoiaXRxTU5FN3dRMG11aUdySDVzTlBBQSIsInZlciI6IjEuMCJ9.UoOWozRlYhrkQMzFEUGWZJxEueN_2TRlR96SmhZt5M03BRxpqzlazRXaqWAz8qnHQvSCWVdZZtV96UWU_mbMxIzoSnIBGCUvDphUMh0OIJNFTy3-xD6NgAAhhm904-7yF2mnLQu0dFq06DmTNMk0XXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZhMbhZeHs7D9U0Xi1Dcw6dHbwbfgn-zThudKTXVfxFxv0KakinWdzGXkLlH_BHvAKrYw
{ status: 403,
statusText: 'Forbidden',
headers:
{ date: 'Sat, 11 Jan 2020 15:20:33 GMT',
'content-type': 'application/json; charset=utf-8',
'content-length': '241',
connection: 'close',
'strict-transport-security': 'max-age=15724800; includeSubDomains',
via: '1.1 draft-oms-6f46cfc587-khxdk',
'x-content-type-options': 'nosniff',
'access-control-allow-origin': '*',
'access-control-expose-headers':
'Retry-After,Age,WWW-Authenticate,x-resource-identities,x-ms-status-location',
vary: 'Accept-Encoding' },
config:
{ url:
'https://api.loganalytics.io/v1/workspaces/MYWORKSPACEGUID/query?query=externalapistatus_CL',
method: 'get',
headers:
{ Accept: 'application/json, text/plain, */*',
Authorization:
'Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZwQSJ9.eyJhdWQiOiJzcG46MDAwMDAwMDItMDAwMC0wMDAwLWMwMDAtMDAwMDAwMDAwMDAwIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvZmEwNjE5ODItYTgxMC00YjQ4LTg5OGYtZGYzZTc2MWNlNzI3LyIsImlhdCI6MTU3ODc1NTg5MCwibmJmIjoxNTc4NzU1ODkwLCJleHAiOjE1Nzg3NTk3OTAsImFpbyI6IjQyTmdZQWdzMjMvdkc3dk5pNTZVVS8zMkVScFNBQT09IiwiYXBwaWQiOiIyNTMyNWY1ZC0yMWI1LTRkMmYtYWE4Ny1jMjYyNmZlZjU2OGQiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTA2MTk4Mi1hODEwXXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZwLThmOGUtM2QyZGFhYzgzZDIzIiwidGVuYW50X3JlZ2lvbl9zY29wZSI6Ik5BIiwidGlkIjoiZmEwNjE5ODItYTgxMC00YjQ4LTg5OGYtZGYzZTc2MWNlNzI3IiwidXRpIjoiaXRxTU5FN3dRMG11aUdySDVzTlBBQSIsInZlciI6IjEuMCJ9.UoOWozRlYhrkQMzFEUGWZJxEueN_2TRlR96SmhZt5M03BRxpqzlazRXaqWAz8qnHQvSCWVdZZtV96UWU_mbMxIzoSnIBGCUvDphUMh0OIJNFTy3-xD6NgAAhhm904-7yF2mnLQu0dFq06DmTNMk0XXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZhMbhZeHs7D9U0Xi1Dcw6dHbwbfgn-zThudKTXVfxFxv0KakinWdzGXkLlH_BHvAKrYw',
'Content-Type': 'application/json',
'User-Agent': 'axios/0.19.1' },
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
data: undefined },
request:
ClientRequest {
_events:
[Object: null prototype] {
socket: [Function],
abort: [Function],
aborted: [Function],
error: [Function],
timeout: [Function],
prefinish: [Function: requestOnPrefinish] },
_eventsCount: 6,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: false,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: 0,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: 'api.loganalytics.io',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 8,
connecting: false,
_hadError: false,
_handle: [TLSWrap],
_parent: null,
_host: 'api.loganalytics.io',
_readableState: [ReadableState],
readable: true,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Circular],
[Symbol(res)]: [TLSWrap],
[Symbol(asyncId)]: 27,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0,
[Symbol(connect-options)]: [Object] },
connection:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: 'api.loganalytics.io',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 8,
connecting: false,
_hadError: false,
_handle: [TLSWrap],
_parent: null,
_host: 'api.loganalytics.io',
_readableState: [ReadableState],
readable: true,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Circular],
[Symbol(res)]: [TLSWrap],
[Symbol(asyncId)]: 27,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0,
[Symbol(connect-options)]: [Object] },
_header:
'GET /v1/workspaces/427fa6ee-41cd-4570-b201-ef6cda4bd314/query?query=externalapistatus_CL HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nAuthorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZwQSJ9.eyJhdWQiOiJzcG46MDAwMDAwMDItMDAwMC0wMDAwLWMwMDAtMDAwMDAwMDAwMDAwIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvZmEwNjE5ODItYTgxMC00YjQ4LTg5OGYtZGYzZTc2MWNlNzI3LyIsImlhdCI6MTU3ODc1NTg5MCwibmJmIjoxNTc4NzU1ODkwLCJleHAiOjE1Nzg3NTk3OTAsImFpbyI6IjQyTmdZQWdzMjMvdkc3dk5pNTZVVS8zMkVScFNBQT09IiwiYXBwaWQiOiIyNTMyNWY1ZC0yMWI1LTRkMmYtYWE4Ny1jMjYyNmZlZjU2OGQiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTA2MTk4Mi1hODEwXXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZwLThmOGUtM2QyZGFhYzgzZDIzIiwidGVuYW50X3JlZ2lvbl9zY29wZSI6Ik5BIiwidGlkIjoiZmEwNjE5ODItYTgxMC00YjQ4LTg5OGYtZGYzZTc2MWNlNzI3IiwidXRpIjoiaXRxTU5FN3dRMG11aUdySDVzTlBBQSIsInZlciI6IjEuMCJ9.UoOWozRlYhrkQMzFEUGWZJxEueN_2TRlR96SmhZt5M03BRxpqzlazRXaqWAz8qnHQvSCWVdZZtV96UWU_mbMxIzoSnIBGCUvDphUMh0OIJNFTy3-xD6NgAAhhm904-7yF2mnLQu0dFq06DmTNMk0XXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSSSSSSSSZZZZZZZZZZZZZZZZZZZZhMbhZeHs7D9U0Xi1Dcw6dHbwbfgn-zThudKTXVfxFxv0KakinWdzGXkLlH_BHvAKrYw\r\nContent-Type: application/json\r\nUser-Agent: axios/0.19.1\r\nHost: api.loganalytics.io\r\nConnection: close\r\n\r\n',
_onPendingData: [Function: noopPendingOutput],
agent:
Agent {
_events: [Object],
_eventsCount: 1,
_maxListeners: undefined,
defaultPort: 443,
protocol: 'https:',
options: [Object],
requests: {},
sockets: [Object],
freeSockets: {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
maxCachedSessions: 100,
_sessionCache: [Object] },
socketPath: undefined,
timeout: undefined,
method: 'GET',
path:
'/v1/workspaces/MYWORKSPACEGUID/query?query=externalapistatus_CL',
_ended: true,
res:
IncomingMessage {
_readableState: [ReadableState],
readable: false,
_events: [Object],
_eventsCount: 3,
_maxListeners: undefined,
socket: [TLSSocket],
connection: [TLSSocket],
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
headers: [Object],
rawHeaders: [Array],
trailers: {},
rawTrailers: [],
aborted: false,
upgrade: false,
url: '',
method: null,
statusCode: 403,
statusMessage: 'Forbidden',
client: [TLSSocket],
_consuming: false,
_dumped: false,
req: [Circular],
responseUrl:
'https://api.loganalytics.io/v1/workspaces/427fa6ee-41cd-4570-b201-ef6cda4bd314/query?query=externalapistatus_CL',
redirects: [] },
aborted: undefined,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
_redirectable:
Writable {
_writableState: [WritableState],
writable: true,
_events: [Object],
_eventsCount: 2,
_maxListeners: undefined,
_options: [Object],
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 0,
_requestBodyBuffers: [],
_onNativeResponse: [Function],
_currentRequest: [Circular],
_currentUrl:
'https://api.loganalytics.io/v1/workspaces/MyWORKSPACEGUIDhMbhZeHs7D9U0Xi1Dcw6dHbwbfgn-zThudKTXVfxFxv0KakinWdzGXkLlH_BHvAKrYw/query?query=externalapistatus_CL' },
[Symbol(isCorked)]: false,
[Symbol(outHeadersKey)]:
[Object: null prototype] {
accept: [Array],
authorization: [Array],
'content-type': [Array],
'user-agent': [Array],
host: [Array] } },
data:
{ error:
{ message: 'The provided authentication is not valid for this resource',
code: 'InvalidTokenError',
innererror: [Object] } } }
解决方案
最后我能够解决这个问题,因为我在 POSTDATA 中使用的 RESOURCE 和 SCOPE 不正确,而 JESONWEBTOKEN.IO 是帮助我查看实际令牌并确定问题的站点。以下是我从 powershell 和 nodejs 应用程序收到的令牌,指出 aud(范围)对于 nodejs 是不正确的:-
{
"aud": "https://api.loganalytics.io",
"iss": "https://sts.windows.net/fa061982-a810-4b48-898f-df3e761ce727/",
"iat": 1578793728,
"nbf": 1578793728,
"exp": 1578797747,
"aio": "42NgYGDRa+oxtXx52Wj9EhNf792XAA==",
"appid": "AAPP ID",
"appidacr": "1",
"idp": "https://sts.windows.net/fa061982-a810-4b48-898f-df3e761ce727/",
"oid": "07e8e976-d8ca-4090-8f8e-3d2daac83d23",
"roles": [
"Data.Read"
],
"sub": "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZzzzzz",
"tid": "XXXXXXXXXXXXXXXXXXXX",
"uti": "o95V0Bai-kSKJ2OFgL1hAA",
"ver": "1.0",
"jti": "1f30af68-8308-4a1c-ba4e-0b0cbfbc8aa6"
}
{
"aud": "spn:00000002-0000-0000-c000-000000000000",
"iss": "https://sts.windows.net/765a879e-5d61-47f9-9de8-fdca959f52b0/",
"iat": 1578792024,
"nbf": 1578792024,
"exp": 1578797718,
"aio": "42NgYHA+Pz8hku24/PsXFep8f2foAAA=",
"appid": "AAP IDD",
"appidacr": "1",
"idp": "https://sts.windows.net/765a879e-5d61-47f9-9de8-fdca959f52b0/",
"oid": "6e180301-8371-47c8-9551-a1417e67943d",
"sub": "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZzzzzzzz",
"tenant_region_scope": "NA",
"tid": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
"uti": "08AhiCc4SUuJMVlxefpoAA",
"ver": "1.0",
"jti": "f158f0f6-0399-4536-896d-7e732402654e"
}
以下是工作代码: -
const axios = require('axios');
const request = require('request');
const qs = require('qs');
const APP_ID = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const APP_SECERET = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY';
const TOKEN_ENDPOINT ='https://login.microsoftonline.com/ZZZZZZZZZZZZZZZZZZZZZZ/oauth2/token?api-version=1.0';
const SCOPE = 'Data.Read';
const resource ='https://api.loganalytics.io';
var responseval = "";
var baseUrlLogAnl2 = 'https://api.loganalytics.io/v1/workspaces/logAnalyticsworkspaceID/query';
const postQuery = {
"query": "AzureActivity | summarize count() by Category"
};
const postData = {
client_id: APP_ID,
scope: 'Data.Read',
client_secret: APP_SECERET,
grant_type: 'client_credentials',
resource: resource
};
axios.defaults.headers.post['Content-Type'] =
'application/x-www-form-urlencoded';
axios
.post(TOKEN_ENDPOINT, qs.stringify(postData))
.then(function(response){
console.log(response['data']);
responseval= 'Bearer ' + response.data.access_token;
axios.defaults.headers.post['Authorization']=responseval;
//axios.defaults.headers.post['Authorization']='Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXwQSJ9.eyJhdWQiOiJodHRwczovL2FwaS5sb2dhbmFseXRpY3MuaW8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83NjVhODc5ZS01ZDYxLTQ3ZjktOWRlOC1mZGNhOTU5ZjUyYjAvIiwiaWF0IjoxNTc4Nzk5NDYwLCJuYmYiOjE1Nzg3OTk0NjAsImV4cCI6MTU3ODgwMzM2MCwiYWlvIjoiNDJOZ1lEaXk2VnBlNmRrRXRsOE10WEVSZTE3ZUJBQT0iLCJhcHBpZCI6IjI1NjJkYWZmLTcyNGYtNDkyYi1hNWVmLWUzOGFkYTVhNTBiYiIsImFwcGlkYWNyIjoiMSIsImlkcCI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0Lzc2NWE4NzllLTVkNjEtNDdmOS05ZGU4LWZkY2E5NTlmNTJiMC8iLCJvaWQiOiI2ZTE4MDMwMS04MzcxLTQ3YzgtOTU1MS1hMTQxN2U2Nzk0M2QiLCJyb2xlcyI6WyJEYXRhLlJlYWQiXSwic3ViIjoiNmUxODAzMDEtODM3MS00N2M4LTk1NTEtYTE0MTdlNjc5NDNkIiwidGlkIjoiNzY1YTg3OWUtNWQ2MS00N2Y5LTlkZTgtZmRjYTk1OWY1MmIwIiwidXRpIjoidjVYa09qZEV0a0dXWmM1TjR5dGlBQSIsInZlciI6IjEuMCJ9.y5m2qa2LEMm_jYYoXBECkY97bFRPpiI6SIFV1MVcjy4ue-1nVPmNf2DsKkrjFLtmD4EnjlZ7RcbBqFBglb3CssJY12TPEkUk8OMchz4JCUrqQKaamMx8pBZHDPDZEOmh3wZrhnzBloT8O20ICwE9yebEy3n9G4pnIBDobImjrMmNs-B0p0wseyItMFYuEnqvM91PpuPyQl032mmXP4SzX0A7XZCHh6ITiuwfb3-p4JGbUpxAmYkCoEOYkCRTaEPiRslqQSHa8PB6pAhuMLNBifoEFRqOgDlHHqde1sdO-8d7M5VxtNoYMCwtNl6yUB2WFBxRQOy46fZq38hMC-LabQ';
axios
.post(baseUrlLogAnl2, qs.stringify(postQuery))
.then(function(response2){
console.log(response2);
})
.catch(function (err){
console.log(err.response);
});
})
.catch(function (err){
console.log(err.response);
});
推荐阅读
- oracle - .net 核心实体框架到 Oracle 数据库
- java - How to inject an object passed to the BaseActivity, instantiating it with reflection (or any other way if possible)
- api - 单一 API 端点的优缺点
- java - Referer 标头中的 URL 被检测为使用多种编码
- mysql - Python脚本数据库连接作为池不起作用,但简单连接正在工作
- c# - .NET 核心图像大小调整:“无法加载文件或程序集”
- ios - 在可重新排序的 tableView 中更改拖动/移动旋钮的颜色
- javascript - 我可以改进这种基于所选选项显示 div 的方法吗?(标签选择和显示 div)
- typescript - 我有一个 Observable 对象流,正在尝试返回一个 Observable
来自数组成员的流 - python - 如何解决IndexError:列表索引超出范围?