axios使用create创建实例并设置baseURL报错“Error: Request failed with status code 404“

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了axios使用create创建实例并设置baseURL报错“Error: Request failed with status code 404“相关的知识,希望对你有一定的参考价值。

异常

Error: Request failed with status code 404
    at createError (D:\\NodeJs\\node-demo\\node_modules\\axios\\lib\\core\\createError.js:16:15)
    at settle (D:\\NodeJs\\node-demo\\node_modules\\axios\\lib\\core\\settle.js:17:12)
    at IncomingMessage.handleStreamEnd (D:\\NodeJs\\node-demo\\node_modules\\axios\\lib\\adapters\\http.js:293:11)
    at IncomingMessage.emit (node:events:402:35)
    at endReadableNT (node:internal/streams/readable:1340:12)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) 
  config: 
    transitional: 
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false
    ,
    adapter: [Function: httpAdapter],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 1000,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    validateStatus: [Function: validateStatus],
    headers: 
      Accept: 'application/json, text/plain, */*',
      'User-Agent': 'axios/0.24.0'
    ,
    baseUrl: 'http://poetry.apiopen.top/',
    method: 'get',
    url: '/sentences',
    data: undefined
  ,

错误代码

var axios = require('axios');

var axiosInstance = axios.create(
    baseUrl: 'http://poetry.apiopen.top/',
    timeout: 1000
);
axiosInstance
    .get('/sentences')
    .then(function (res) 
        console.log(res.data)
    );

原因

根据提示报出的响应状态码404,知道是路径的问题,但这个请求接口路径没有问题,但是这里使用了axios的baseURL,所以问题出在这。

我们看官网的示例代码是:

const instance = axios.create(
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: 'X-Custom-Header': 'foobar'
);

仔细看原来我们是把baseURL属性写成了baseUrl,所以导致报错。

解决

baseUrl改成baseURL

正确代码

var axios = require('axios');

var axiosInstance = axios.create(
    baseURL: 'http://poetry.apiopen.top/',
    timeout: 1000
);
axiosInstance
    .get('/sentences')
    .then(function (res) 
        console.log(res.data)
    );

以上是关于axios使用create创建实例并设置baseURL报错“Error: Request failed with status code 404“的主要内容,如果未能解决你的问题,请参考以下文章

模拟内部 axios.create()

vue简单封装axios

Axios 自定义实例无法与下一个 JS 一起正常工作

axios封装

axios模块封装

axios设置请求拦截和响应拦截