React Axios 将 Window 来源附加到提供的 Url (json-server)

React Axios Appends Window Origin To Provided Url (json-server)

我在将 json-server api 与 axios 集成时有一个奇怪的行为。

我使用 json-server 来提供 db.json 文件

json-server --watch db.json --port 4000

在我的 React 应用程序中,我使用 axios 调用“http://localhost:4000/tasks

在 postman 上测试它,API returns 结果并且工作正常。

但是使用下面的代码片段 (axios) 它将 React 应用程序的两个域和 api Url 连接到请求。

try {
        return axios({
            method: 'GET',
            url: `http://localhost:4000/tasks`
        }).then((response) => {
            debugger;
            return response;
        });
    } catch (error) {
        return new Error('Failed to retrieve Tasks');
    }

我检查了浏览器网络,我的请求 Url 就像那样

请求URL:http://localhost:3000/http//localhost:4000/tasks

因此抛出未找到 - 404 异常

知道为什么会这样吗?

奇怪的是,当我使用另一个 API 就像星球大战 api“https://swapi.co/api/people/1”时,它就像一个魅力。

提前致谢...

我已经使用环境变量解决了这个问题。

我刚刚创建了一个“.env.development”文件并添加了 "REACT_APP_API_BASEURL = 'http://localhost:4000'".

然后我使用如下:

try {
    return axios({
        method: 'GET',
        url: `${process.env.REACT_APP_API_BASEURL}/tasks`
    }).then((response) => {
        debugger;
        return response;
    });
} catch (error) {
    return new Error('Failed to retrieve Tasks');
}

而且效果很好。