Axios 补丁没有获取 baseURL

Axios patch doesn't get baseURL

我正在尝试更改我的 Axios 补丁库URL,但我不知道为什么调用它 stageReceiver 方法它仍然获得默认基础URL(我的 npm 运行 服务正在监听和服务我的应用程序的那个)。


import axios from "axios";

const getSingleSenders = baseURL =>
  axios
    .get("/single/senders", {baseURL: baseURL})
    .then(({ data }) => ({ senders: data }))

const stageReceiver = (receiverId, baseURL, stagedPayload) =>
  axios
    .patch("/single/receivers/" + receiverId + "/staged", {
        baseURL: baseURL,
        payload: stagedPayload,
        Headers: {"Content-Type": "application/json"}
      })
    .then(({ data }) => ({ receiver: data }))

export default {
    getSingleSenders,
    getSingleSender,
    stageReceiver
};

当我在需要时调用函数时,让我们说 newBaseURL="http://172.17.0.13:8080/test":

const stagedResult = await connectionService.stageReceiver(id, newBaseURL, connectionPayload) 

如果我检查浏览器,我可以看到请求正在获取 404,我的 Vue 开发实例的错误 URL(我的 npm 运行 服务正在侦听):

http://localhost:8082/single/receivers/id/staged

相反

http://172.17.0.13:8080/test/single/receivers/id/staged

另一种方法 getSingleSenders with get 可以正常工作,并且可以正确写入 baseURL。 我错过了一些东西,但我不知道是什么。我希望这个问题足够清楚。 非常感谢任何建议。

您应该按照文档中的说明将您的配置作为第三个参数传递:

const stageReceiver = (receiverId, baseURL, stagedPayload) =>
    axios
      .patch(
         "/single/receivers/" + receiverId + "/staged",
         stagedPayload,
         {
            baseURL: baseURL,
            Headers: { "Content-Type": "application/json" }
         }
      )
      .then(({ data }) => ({ receiver: data }));