Я пытаюсь сделать запрос на почту через jQuery, используя обещание ES6:
У меня есть функция:
getPostPromise(something, anotherthing) {
return new Promise(function(resolve, reject) {
$.ajax({
url: someURL,
type: 'post',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(
something: something,
anotherthing: anotherthing
}),
dataType: 'json',
success: resolve,
error: reject
});
});
}
и я называю это так:
getPostPromise(
'someFooStuff',
'someBarStuff'
).then(
function(returnedData) {
console.log("Good: ", returnedData);
},
function(responseObject) {
console.log("Bad: ", responseObject);
}
).catch(
function(errorThrown) {
console.log("Exception: ", errorThrown);
}
);
Мой сервер возвращает ответ, как и ожидалось, с телом запроса, который находится в формате JSON, но мой вывод в консоли:
Хорошо: undefined
Почему я не получаю возвращенные данные?
Спасибо кому-нибудь за любую помощь.
--- ИЗМЕНЕНИЕ ОБНОВЛЕНИЯ ---
Я уменьшил свой js только:
import $ from 'jquery';
$.get('http://localhost:8008/api/user')
.done(function(data) {
console.log(data);
});
Я все еще получаю undefined как вывод. Если я открою запрос на вкладке сети, я увижу объект ответа с правильными данными. Запрос сделан, мой сервер счастлив и отвечает, а результаты находятся в моем браузере, но параметр данных done - undefined. Я в тупике.
--- ОБНОВЛЕНИЕ 2 - РЕШЕНИЕ НАЙДЕНО ---
Я обнаружил, что проблема заключалась в использовании: https://github.com/jpillora/xdomain, чтобы обойти CORS. Казалось бы, эта библиотека как-то подталкивает обратно. Я удалил его и правильно выполнил CORS и, черт возьми, с браузерами, которые его не поддерживают.