При использовании Proxy файлы cookie не отправляются в приложении angular 4 с использованием withCredentials со значением true - PullRequest
0 голосов
/ 09 мая 2018

Я размещаю приложение 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, используя прокси, который работает правильно для запроса входа в систему. Но этот второй запрос не отправляется с куки. Кто-нибудь, кто может помочь с этим?

1 Ответ

0 голосов
/ 09 мая 2018

Почему вы используете jQuery в своем приложении angular и зачем его использовать для выполнения запросов ajax, если angular предоставляет http client ?

Вам лучше использовать его, а затем использовать перехватчики , чтобы добавить заголовки к запросам.

При использовании Angular делайте это Angular способом. И использовать его инструменты / библиотеки / шаблоны.

...