gpt4 book ai didi

javascript - 使用一个函数通过 axios 处理 POST/GET API 调用

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:25 26 4
gpt4 key购买 nike

正如标题所说,我想要做的是创建一个通用函数,以便使用一个函数执行 GETPOST 调用。但是,因为在发送 GET 调用时需要 params 条目来包含数据,所以当通过 POST 发送数据时,它需要 data 条目(如果我没有记错的话)。

我目前有以下功能;

function api(method, call, params){
return new Promise(function(resolve, reject){
axios({
url: call,
method,
params
}).then(function(response) {
var body = response.data;
if(body.status !== 1){
return reject(body.message);
}

resolve(body.response);
}).catch(function(err){
reject(err);
});
});

GET 调用可以正常工作,因为有参数条目,但对于 POST 调用,它会停止工作。我该如何解决这个问题,以便我有一个函数来处理这两个调用?

最佳答案

另一种方法是接受config对象作为参数。此外,您不需要将 axios() 包装在新的 Promise 中,因为 axios()` 返回一个 Promise 本身。

function api(config) {
const baseUrl = "http://foo.baz";

const updatedConfig = Object.assign({}, config, {
// If you want to append base url to all api methods.
url: `${baseUrl}${config.url}`
});

return axios(updatedConfig).then(response => {
const body = response.data;

if (body.status !== 1) {
throw new Error(body.message);
}

return body.response;
});
}

用法:

api({
url: "/user",
method: "get",
params: { id: "xyz" }
}).then(() => { });

api({
url: "/tag",
method: "post",
data: { tag: "abc" }
}).then(() => { });

关于javascript - 使用一个函数通过 axios 处理 POST/GET API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56552199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com