Файлы cookie не устанавливаются с помощью выборки javascript

Если я использую fetch() в javascript на своей странице, он не отправляет файлы cookie в запросе в Firefox и Edge, в Chrome он отлично работает. Для моей страницы необходимы файлы cookie из-за аутентификации.

Запрос находится в том же домене, и я не вижу причин, почему это не должно происходить. Я использую https.

Это не работает в Firefox / Edge (файлы cookie не установлены):

    fetch('/kiaweb/notification/key')
    .then(function (res) {
        res.json().then(function (data) {
            self.apiKey = data.key;
        });
    });

но это работает везде (все файлы cookie установлены) (с использованием jquery):

    $.get('/kiaweb/notification/key' function(data) {
    self.apiKey = data.key;});
0
0
297
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Согласно списку поддержки браузера IE не поддерживает fetch - вы можете проверить поддержку здесь, на эта ссылка.

Извините, было одно место, где я написал IE вместо firefox. IE здесь не проблема

Numm3n 10.08.2018 14:36

Попробуйте проверить версию своего Firefox. Поддерживается в версии 60 и выше.

Sujit Agarwal 10.08.2018 14:37
Ответ принят как подходящий

Забыл, что мне нужно установить { credentials: "same-origin" }.

Запрос будет таким:

fetch('/kiaweb/notification/key',{ credentials: "same-origin" })
.then(function (res) {
    res.json().then(function (data) {
        self.apiKey = data.key;
    });
});

Это решило проблему и для меня в Edge 16/17. Обратите внимание, что это связано с ошибкой в ​​реализации Edge и была решена в Edge 18.

Madbreaks 25.01.2019 18:20

Другие вопросы по теме