Skip to content

XMLHttpRequest withCredentials

Nasimi Mamedov edited this page Aug 7, 2023 · 1 revision

AJAX



withCredentials

boolean
⚠️ Используется при кросс-доменных запросах

Значение true означает:

  • разрешение на отправку аутентификационных данных клиента вместе с запросом ( содержимого cookie, например )
  • разрешение third-party cookies ( сохранение на клиенте cookie домена, с которого пришел ответ на наш запрос )

Посмотрим на примере

Перейдем на ptsv2.com

Откроем инструменты разработчика => вкладку Application

в панели навигации ( слева ) откроем раздел Cookies

Вручную вставим в куки любые данные

Cookies

Теперь у нас есть куки с домена ptsv2.com

Отправим из консоли запрос на сервер с опцией withCredentials

var obj = {
    provider: "Google",
    type: "service",
    eco: "git"
}

var request = new XMLHttpRequest
request.open (
    "POST",
    'http://ptsv2.com/t/mbkkong/post'
)

request.withCredentials = true
request.setRequestHeader (
    "Content-Type",
    "application/json"
)

request.onload = function() {
   if ( this.status === 200 ) {
        console.log ( this.response )
   }
}
request.send ( JSON.stringify ( obj ) )
Заголовки дампа на сервере ptsv2.com

Как видите, вместе с данными на сервер были отправлены куки

Сервер эти куки получил

Если открыть вкладку Network инструментов разработчика, то мы увидим, что кроме Headers, Preview, Response и Timing для нашего запроса появилась вкладка Cookies

В этой вкладке мы видим и те куки, которые "поехали" с запросом на сервер, и те куки, которые пришли назад

( ничего не пришло, потому что ptsv2.com не пишет куки, и ему наплевать на наше разрешение писать свои куки на клиенте )


© Nasimi Mamedov 2018

Курсы были созданы для студентов A-Level Ukraine.

Использование данных материалов или любой их части коммерческими школами ( курсами ) является нарушением авторских прав.

A-Level Ukraine


1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19

Занятие 1

⤵️

Занятие 2

⤴️ ⤵️

Занятие 3

⤴️ ⤵️

Занятие 4

⤴️ ⤵️

Занятие 5

⤴️ ⤵️

Занятие 6

⤴️ ⤵️

Занятие 7

⤴️ ⤵️

Занятие 8

⤴️ ⤵️

Занятие 9

⤴️ ⤵️

Занятие 10

⤴️ ⤵️

Занятие 11

⤴️ ⤵️

Занятие 12

⤴️ ⤵️

Занятие 13

⤴️ ⤵️

Занятие 14

⤴️ ⤵️

Занятие 15

⤴️ ⤵️

Занятие 16

⤴️ ⤵️

Занятие 17

⤴️ ⤵️

Занятие 18

⤴️ ⤵️

Занятие 19

⤴️ ⤵️

⤴️

ico20 Дополнительно
dir-20 Справочная инфо

Clone this wiki locally