В настоящее время у меня есть следующий топор ios пост-запрос в качестве примера:
в загрузке / топор ios. js
import Vue from 'vue'
import axios from 'axios'
import qs from 'qs'
Vue.prototype.$axios = axios
Vue.prototype.$qs = qs
Vue.prototype.$serverUrl = 'http://localhost:8090/api/';
На моей странице:
this.$axios.post(this.$serverUrl, null,
{ data: {version: "1", command: "login", email: this.regEmail, password: this.password, API: 2, token: "dummy"},
transformRequest: [(data, headers) => {return this.$qs.stringify(data);}]})
.then((response) => {...})
.catch((err) => {...})
.finally(() => {...})
Это работает нормально, но я хочу глобализировать его, чтобы базовый URL и другие фиксированные параметры уже были там, и я просто отправлю дополнительные параметры для конкретного вызова c:
this.$postCall(call specific params...)
.then((res) => {...})
.catch((err) => {...})
.finally(() => {...})
Я понимаю, что должен создать прототип чего-то вроде
Vue.prototype.$postCall = function(param) {
}
Но я не уверен, как обратные вызовы должны go возвращаться к вызывающей стороне ...
Редактировать: Я сделал следующее:
Vue.prototype.$postCall = function (params) {
return this.$axios.post('http://localhost:8090/api', null, { data: { API: 2, version: "1", params}});
}
и вызвал его:
this.$postCall({ command: "login", email: this.regEmail, password: this.password, token: "dummy" })
В отладке я вижу правильный информационный ключ: значение в параметрах, и я ожидал дополнительного параметры должны быть добавлены к фиксированным, но это не так, что мне не хватает?
Edit2: Исправлено простым l oop
let theData = {
API: 2,
version: "1",
};
for (var k in params) {
theData[k] = params[k];
}