Я размещаю приложение angular 4 на моем локальном хосте, так как мне нужно сделать запрос api к моему бэкэнду, который размещен в сети (скажем, https://example.com), я использую прокси. Вот мой конфигурационный файл прокси.
"*": {"target":"https://example.com",
"secure": false,
"logLevel": "debug",
"changeOrigin": true }
Так что каждый мой запрос проходит через целевой URL. Когда я делаю свой первый запрос на страницу входа с учетными данными, я получаю куки в ответ. Но затем, когда я делаю другой запрос (POST) на https://example.com/images, я перенаправлен на страницу входа. Я вижу в своей сети, что файлы cookie не отправляются с заголовками запросов, однако я получил их из моего первого запроса на вход. Я проверил много решений этой проблемы. Многие из них просили включить {withCredentials = true} в мой запрос ajax, который я делал в каждом запросе. Вот мой запрос
$.ajax({
url: "https://example.com/images",
type: "POST",
crossDomain:true,
headers: {
// includes necessary headers .
},
xhrFields: {
withCredentials: true
},
data:data1 ,
//data1 is json formatted
success: function (res) {
console.log(res)
},
error: function (xhr, status) {
console.log(status);
}
});
Но это не решило проблему. Я подозреваю, что куки теряются из-за прокси или браузер не обрабатывает их правильно. Я проверил, я позволил сторонние куки. Мне нужно отправить эти сеансовые куки с этим вторым запросом. Я пытался добавить их вручную, но не нашел способа получить и отправить их вместе с этим запросом. как я могу решить эту проблему? Если я удалю прокси, я получу проблему с CORS. У меня нет доступа к бэкэнд-серверу. поэтому я попытался обработать CORS, используя прокси, который работает правильно для запроса входа в систему. Но этот второй запрос не отправляется с куки. Кто-нибудь, кто может помочь с этим?