Когда я отправляю запрос POST на мой сайт, все это работает на iOS. Набор файлов cookie для получения ответа содержит все файлы cookie, необходимые для продолжения работы и выполнения будущих запросов. Проблема в Android. Я получаю только один cookie в set-cookie, хотя их больше. Кажется, что это обрезается, и я не могу получить доступ к необработанному ответу.
Мой код получения:
const myRequest = new Request('MYURL',
{method: 'POST', body: parameters,
headers: {
"Referer": 'MYURL.com/login',
'Origin': 'MYURL',
'Content-Type': 'application/x-www-form-urlencoded'
}});
fetch(myRequest)
.then(
function(response) {
try {
console.log("JSON RESPONSE: " + response.json());
console.log(JSON.stringify(response, null, 2));
console.log(response.headers.get('Content-Type'));
console.log(response.headers.get('Date'));
} catch(err) {
console.log("ERROR: " + err);
}
}
)
.catch(function(err) {
console.log('Fetch Error', err);
});
Я знаю, что android правильно вошел в систему, потому что сервер перенаправляет меня на страницу меню, а также распознает личный идентификатор клиента.
Вот ответ от iOS (тот, который работает):
"set-cookie": "session = CENSORED; домен = .MYURL; путь = /; HttpOnly, clientID = 123; истекает = чт, 07-ноябрь-2019 09:27:20 GMT; домен = .MYURL; путь = /»,
Идеальный ответ. Все работает.
Вот ответ от андроида:
"set-cookie": "clientID = 123; срок действия = чт, 07-ноябрь-2019 09:34:00 по Гринвичу; домен = .MYURL; путь = /",
Я пытался понять проблему несколько дней, но безрезультатно. Я пытался проверить файлы cookie без httponly, чтобы убедиться, что это ошибка, но нет.
Надеюсь, что некоторые опытные пользователи-носители могут пролить свет на эту проблему. Я не испытывал этого раньше, когда создавал нативные приложения для Android и IOS. Только с Реакцией-родной. : - (
Я надеюсь заставить это работать, так как я бы предпочел не использовать нативный код для этой небольшой части.
РЕДАКТИРОВАТЬ: протестирована функция выборки с API Reddit входа и возникает та же проблема. Только 1 файл cookie в ответном наборе-Cookio на Android, но все файлы cookie показаны на iOS.