Отличные ответы выше. Я хочу только добавить, что внутри области вашей функции вы можете присвоить значение этой переменной переменной let self = this;
, а затем внутри обратного вызова просто обратиться к данным типа self.data
.
Ваш код :
function MyConstructor(data, transport) {
this.data = data;
let self = this; //ADD THIS LINE
transport.on('data', function () {
alert(self.data); //USE IT LIKE THIS
});
}
// Mock transport object
var transport = {
on: function(event, callback) {
setTimeout(callback, 1000);
}
};
// called as
var obj = new MyConstructor('foo', transport);
Fetch не использует cookie по умолчанию. Чтобы включить cookie, сделайте следующее:
fetch(url, {
credentials: "same-origin"
}).then(...).catch(...);
Только что решили. Всего два f. дней брутфорса
Для меня секрет заключался в следующем:
credentials: 'include'
и получив 401 unauth, из-за отсутствия файлов cookie с запросом. KEY должен установить credentials: 'include'
для первого / api / auth call.
В дополнение к ответу @ Khanetor для тех, кто работает с запросами на перекрестный поиск: credentials: 'include'
Пример запроса выборки JSON:
fetch(url, {
method: 'GET',
credentials: 'include'
})
.then((response) => response.json())
.then((json) => {
console.log('Gotcha');
}).catch((err) => {
console.log(err);
});
https : //developer.mozilla.org/en-US/docs/Web/API/Request/credentials
same-origin
(который делает i> все еще работает) означает, что больше заголовков будет соблюдаться (файлы cookie и т. Д.), Но ваш код будет иметь ограниченный доступ к ответу. – Coderer 13 December 2017 в 16:51document.cookie
, но все еще доступно для запросов ajax или fetch. – Martin Bajcar 28 May 2018 в 22:01