Мой POST-запрос axios работает примерно в 70% случаев. Кажется, не существует паттерна между тем, какие входы работают, а какие нет (длина не имеет значения). Я попытался прочитать все вопросы стека overflow с похожими проблемами, но ничего не помогло.
onSubmit() {
const newInput = {
input_text: this.state.value,
}
instance.post('http://localhost:4000/inputs/add/', newInput)
.then(res => {
console.log(res.data);
})
.catch(error => {
if (error.response) {
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
}
});
};
В этом фрагменте кода "instance" - это мой экземпляр axios, к которому я применил тайм-аут 1000 (просто хотел посмотреть, будет ли это иметь значение). Я применил к запросу перехватчик axios, чтобы попытаться более четко понять, что происходит, но поведение идентично рабочим и нерабочим запросам. Это означает, что «запрос был отправлен» последовательно регистрируется, что означает, что запрос отправлен, и зарегистрированный конфигурационный файл выглядит одинаково между рабочими и нерабочими запросами.
instance.interceptors.request.use(function (config) {
console.log("request was sent");
console.log(config);
return config;
}, function (error) {
console.log(error);
return Promise.reject(error);
});
Как выглядит конфигурация:
{url: "http://localhost:4000/inputs/add/", method: "post", data: {…}, headers: {…}, transformRequest: Array(1), …}
adapter: ƒ xhrAdapter(config)
data: {input_text: "l"}
headers: {common: {…}, delete: {…}, get: {…}, head: {…}, post: {…}, …}
maxContentLength: -1
method: "post"
timeout: 1000
transformRequest: [ƒ]
transformResponse: [ƒ]
url: "http://localhost:4000/inputs/add/"
validateStatus: ƒ validateStatus(status)
xsrfCookieName: "XSRF-TOKEN"
xsrfHeaderName: "X-XSRF-TOKEN"
__proto__: Object
Я вполне уверен, что в нерабочих случаях запрос даже не достигает бэкэнда. Это связано с тем, что в приведенном ниже фрагменте кода моего внутреннего маршрута нерабочие экземпляры ничего не регистрируют, в то время как рабочие экземпляры регистрируют как «это сработало», так и «закончено».
inputRoutes.route('/add').post(function(req, res) {
req.body.input_output = processor.processText(req.body.input_text);
let input = new Input(req.body);
input.save()
.then(todo => {
res.status(200).json({'input': 'input added successfully'});
console.log("this worked");
})
.catch(err => {
res.status(400).send('adding new input failed');
console.log("this didn't work");
});
console.log("finished");
});
Как ни странно, запрос POST фактически начал работать чаще, когда я помещал перехватчик в ... К вашему сведению, этот запрос работает на Почтальоне 100% времени. Кажется, что ни одна из реализованных мною ловушек ошибок также не обнаружена, и ничего не регистрируется.
Я был бы очень признателен, если бы у кого-нибудь были какие-либо предложения относительно дальнейших методов отладки или кто-нибудь знает решение дляЭта проблема. Я поместил отладочные / console.log заявления везде безрезультатно, и у меня нет идей. Спасибо!