如何配置Axios忽略SSL证书错误?适配GET/POST请求
解决Axios请求中“unable to get local issuer certificate” SSL错误的正确配置方法
你之前的配置无效是因为Axios的httpsAgent需要接收Node.js https模块创建的Agent实例,而非直接传入普通配置对象。以下是正确的配置方式,适用于GET和POST请求:
步骤1:引入Node.js的https模块
在代码开头添加:
const https = require('https'); // 若使用ES模块则改为:import https from 'https';
步骤2:创建自定义HTTPS Agent
生成一个禁用证书校验的Agent实例:
const sslAgent = new https.Agent({ rejectUnauthorized: false });
步骤3:在Axios请求中使用该Agent
GET请求示例
const https = require('https'); const axios = require('axios'); async function fetchTestData(id) { const sslAgent = new https.Agent({ rejectUnauthorized: false }); const getConfig = { headers: {'PTToken': 'token'}, params: { 'filter-id': `${id}` }, httpsAgent: sslAgent // 传入实例化后的Agent }; try { const { data, status } = await axios.get('https://api.practitest.com/api/v2/projects/id/tests.json', getConfig); console.log('data', data, status); } catch (error) { console.log('error', error); } }
POST请求示例
POST请求的配置逻辑完全一致,只需替换请求方法并传入请求体数据:
const https = require('https'); const axios = require('axios'); async function submitTestData(id, payload) { const sslAgent = new https.Agent({ rejectUnauthorized: false }); const postConfig = { headers: {'PTToken': 'token'}, httpsAgent: sslAgent // 同样传入Agent实例 }; try { const { data, status } = await axios.post('https://api.practitest.com/api/v2/projects/id/tests.json', payload, postConfig); console.log('data', data, status); } catch (error) { console.log('error', error); } }
重要提示
- 仅建议在开发环境使用此配置跳过证书校验,生产环境必须配置合法的CA证书,否则会面临中间人攻击的安全风险。
- 浏览器环境下的Axios无法通过此方式修改SSL校验逻辑,需确保服务器证书配置合规,或借助代理工具处理证书问题。
内容的提问来源于stack exchange,提问作者D.Hodges
相关产品推荐
相关产品推荐

