1
00:00:00,000 --> 00:00:04,770
[MUSIC]

2
00:00:04,770 --> 00:00:09,509
Узнав некоторые детали о Cors в предыдущей лекции,

3
00:00:09,509 --> 00:00:15,670
в этом упражнении мы будем использовать модуль Cors Node Module и настроить наш экспресс-сервер.

4
00:00:15,670 --> 00:00:21,760
Чтобы сервер мог отвечать соответствующими

5
00:00:21,760 --> 00:00:26,340
заголовками, связанными с Cors на запрос, поступающий с сайта клиента.

6
00:00:28,460 --> 00:00:36,060
Чтобы начать, как вы ожидали, мы сначала установим Cors Node Module.

7
00:00:36,060 --> 00:00:39,280
Поэтому в командной строке введите npm install.

8
00:00:39,280 --> 00:00:46,170
Убедитесь, что вы находитесь в папке сервера MuSTRION, а затем cors — save.

9
00:00:46,170 --> 00:00:48,160
А затем установите модуль cors.

10
00:00:49,160 --> 00:00:54,140
И, как вы можете видеть, в этом курсе я использую cors @2 .8.4.

11
00:00:54,140 --> 00:00:57,530
После того, как вы установили модуль cors,

12
00:00:57,530 --> 00:01:03,260
давайте перейдем к нашему редактору, а затем настроим наш экспресс-сервер.

13
00:01:03,260 --> 00:01:05,320
Иду к нашему редактору.

14
00:01:05,320 --> 00:01:10,360
Теперь в папке маршрутов, теперь это то, где я бы в первую очередь

15
00:01:10,360 --> 00:01:14,980
применял модуль cors, потому что именно там обслуживаются все различные маршруты.

16
00:01:14,980 --> 00:01:22,130
Поэтому в папке маршрутов я добавлю новый файл с именем cors.js.

17
00:01:22,130 --> 00:01:27,180
И затем в этом файле, мы настроим модуль cors.

18
00:01:27,180 --> 00:01:32,795
Теперь это мой способ поместить всю информацию, связанную с

19
00:01:32,795 --> 00:01:38,980
Cors, в один отдельный файловый модуль узла здесь.

20
00:01:38,980 --> 00:01:42,445
Поэтому в подсказке

21
00:01:42,445 --> 00:01:47,527
позвольте мне попробовать const express =

22
00:01:47,527 --> 00:01:53,979
require («express»).

23
00:01:53,979 --> 00:01:58,795
И давайте включим

24
00:02:02,831 --> 00:02:05,263
модуль Cors.

25
00:02:10,379 --> 00:02:15,434
Const app = express (); а

26
00:02:15,434 --> 00:02:23,800
затем скажем, белый список массива строк.

27
00:02:23,800 --> 00:02:28,843
Белый список содержит все источники

28
00:02:28,843 --> 00:02:33,892
, которые этот сервер готов принять.

29
00:02:33,892 --> 00:02:38,942
Теперь я собираюсь включить пару из них здесь,

30
00:02:38,942 --> 00:02:41,793
локальный хост: 3000, а

31
00:02:41,793 --> 00:02:48,147
затем, локальный хост 3443.

32
00:02:48,147 --> 00:02:53,415
И если вам нужно добавить больше источников в ваш белый список, вы можете просто добавить их

33
00:02:53,415 --> 00:02:58,544
в свой белый список, потому что я явно пытаюсь настроить свой модуль cors.

34
00:02:58,544 --> 00:03:04,444
Итак, здесь я объявлю

35
00:03:04,444 --> 00:03:12,006
функцию A здесь,

36
00:03:16,755 --> 00:03:23,000
с запросом и обратным вызовом определяются здесь.

37
00:03:23,000 --> 00:03:29,180
И внутри этого я собираюсь понять, что варианты Cors здесь.

38
00:03:29,180 --> 00:03:37,337
Поэтому я начну с слов CorsOptions,

39
00:03:37,337 --> 00:03:43,683
var CorsOptions; а затем я

40
00:03:43,683 --> 00:03:53,453
скажу, если (whiteList.indexOf (req.header ('Origin'-

41
00:03:53,453 --> 00:03:56,850
)).

42
00:03:56,850 --> 00:04:01,920
Таким образом, вы можете видеть, что здесь мы указываем в коде здесь,

43
00:04:01,920 --> 00:04:03,390
мы говорим req.header.

44
00:04:03,390 --> 00:04:07,770
Поэтому, если входящий заголовок запроса содержит источник,

45
00:04:07,770 --> 00:04:11,420
то мы собираемся проверить этот белый список.

46
00:04:11,420 --> 00:04:15,770
Ищете это конкретное происхождение, присутствует ли оно в этом белом списке?

47
00:04:15,770 --> 00:04:18,360
Вот почему мы говорим WhiteList.indexOf.

48
00:04:18,360 --> 00:04:23,020
Таким образом, это операция массива, которая выполняется здесь.

49
00:04:23,020 --> 00:04:29,715
И скажем, в происхождении не равно -1.

50
00:04:30,810 --> 00:04:37,575
Как вы знаете, индекс операции вернет индекс больше или

51
00:04:37,575 --> 00:04:42,057
равен нулю, если он присутствует в этом массиве.

52
00:04:42,057 --> 00:04:46,620
Он вернет -1, если этого нет в этом массиве.

53
00:04:46,620 --> 00:04:51,155
Таким образом, очень быстрый способ проверки, чтобы увидеть,

54
00:04:51,155 --> 00:04:54,860
происходят ли входящие запросы в белый список.

55
00:04:54,860 --> 00:04:58,875
В этом случае мы скажем

56
00:04:58,875 --> 00:05:03,854
CorsOptions, CorsOptions.

57
00:05:06,358 --> 00:05:11,027
CorsOptions = и здесь я

58
00:05:11,027 --> 00:05:15,541
буду указывать {origin: true}

59
00:05:17,633 --> 00:05:23,038
Таким образом, говоря {origin: true}, что означает, что исходное

60
00:05:23,038 --> 00:05:27,830
происхождение во входящем запросе находится в белом списке.

61
00:05:27,830 --> 00:05:30,995
Так что я позволю его принять.

62
00:05:30,995 --> 00:05:36,305
Поэтому, когда я устанавливаю происхождение равно true здесь, мой модуль cors

63
00:05:36,305 --> 00:05:42,565
ответит назад, говоря, что контроль доступа разрешает origin, а затем включит это происхождение в

64
00:05:42,565 --> 00:05:47,590
заголовки с ключом управления доступом allow origin там.

65
00:05:47,590 --> 00:05:53,130
Таким образом, моя клиентская сторона будет проинформирована о том, что

66
00:05:53,130 --> 00:05:59,250
сервер может принять этот запрос для этого конкретного источника.

67
00:05:59,250 --> 00:06:03,858
В противном случае, если это не так, поэтому,

68
00:06:03,858 --> 00:06:09,127
если req.header ('Origin') не находится в

69
00:06:09,127 --> 00:06:14,547
белом списке, вы увидите CorsOptions.

70
00:06:17,920 --> 00:06:19,610
{ origin: false}.

71
00:06:19,610 --> 00:06:24,815
Поэтому, когда вы устанавливаете origin в false, контроллер доступа

72
00:06:24,815 --> 00:06:29,415
Alloworigin не будет возвращен моим сайтом сервера.

73
00:06:29,415 --> 00:06:33,411
И затем, как только мы это

74
00:06:33,411 --> 00:06:40,345
сделаем, мы скажем обратный вызов (null, CorsOptions);.

75
00:06:40,345 --> 00:06:43,335
Вот оно. Таким образом, вызвав эту функцию здесь

76
00:06:43,335 --> 00:06:48,010
, CorsOptionsDelegate здесь, мы проверим, если входящий

77
00:06:48,010 --> 00:06:53,100
запрос принадлежит одному из белых источников.

78
00:06:53,100 --> 00:06:57,342
Если это так, то вы отвечаете обратно с контролем доступа

79
00:06:57,342 --> 00:07:02,313
Alloworigin с источником запроса, установленного там.

80
00:07:02,313 --> 00:07:08,490
В противном случае он не будет включать этот контроль доступа Alloworigin, когда он отвечает.

81
00:07:08,490 --> 00:07:16,250
Теперь, из этой функции, мы будем экспортировать Cors в виде Cors здесь.

82
00:07:16,250 --> 00:07:20,724
Теперь, если вы настроили модуль cors, просто сказав cors

83
00:07:20,724 --> 00:07:24,751
без каких-либо опций, то это означает, что это будет отвечать

84
00:07:24,751 --> 00:07:29,597
с контролем доступа Alloworigin с wild cards toll.

85
00:07:29,597 --> 00:07:32,748
Существуют определенные правила, по которым это приемлемо,

86
00:07:32,748 --> 00:07:35,660
особенно всякий раз, когда мы выполняем операции get.

87
00:07:35,660 --> 00:07:37,830
Это нормально, принять это.

88
00:07:37,830 --> 00:07:44,660
В противном случае, скажем, CorsWithOptions = cors, а

89
00:07:44,660 --> 00:07:50,639
затем мы поставим

90
00:07:50,639 --> 00:07:56,060
функцию) CorsOptionsDelegate), которую мы только что определили ранее.

91
00:07:57,290 --> 00:08:02,230
Таким образом, если вам нужно применить A cors

92
00:08:02,230 --> 00:08:07,190
с определенными опциями к конкретному маршруту, мы будем использовать эту функцию.

93
00:08:07,190 --> 00:08:09,960
В противном случае мы просто будем использовать стандартные Cors.

94
00:08:09,960 --> 00:08:15,030
Теперь, когда мы определили код, связанный с корсами в cors.js,

95
00:08:15,030 --> 00:08:19,410
давайте начнем применять его к различным маршрутам.

96
00:08:19,410 --> 00:08:22,040
Поэтому мы начнем с DishRouter.

97
00:08:22,040 --> 00:08:27,402
Итак, давайте откроем DishRouter, и

98
00:08:27,402 --> 00:08:32,406
в DishRouter мы сначала

99
00:08:32,406 --> 00:08:37,064
импортируем [NOUE]. /кор.

100
00:08:37,064 --> 00:08:41,320
Обратите внимание, что файл cors.js находится в той же папке, поэтому

101
00:08:41,320 --> 00:08:45,300
мы можем просто импортировать это, сказав. /cors.js.

102
00:08:45,300 --> 00:08:47,417
Модуль файлового узла.

103
00:08:47,417 --> 00:08:53,650
Теперь, для запроса GET, как только мы импортировали это.

104
00:08:53,650 --> 00:08:58,970
Теперь, для DishRouter, я собираюсь настроить поле опций.

105
00:08:58,970 --> 00:09:03,510
Таким образом, как вы видели, всякий раз, когда вам нужно предварительно проверить ваши запросы,

106
00:09:03,510 --> 00:09:10,250
клиент сначала отправит сообщение запроса HTTP OPTIONS, а затем получит

107
00:09:10,250 --> 00:09:14,340
ответ со стороны сервера, прежде чем он фактически отправит фактический запрос.

108
00:09:14,340 --> 00:09:22,960
Итак, для опций, если сообщение опций получено на этом конкретном маршруте,

109
00:09:22,960 --> 00:09:28,944
то мы ответим как Cors.CorsWithOptions, и,

110
00:09:31,539 --> 00:09:38,022
С функцией обратного вызова здесь, который говорит,

111
00:09:38,022 --> 00:09:45,773
res.sendStatus, 200.

112
00:09:45,773 --> 00:09:51,850
Нам не нужно отправлять ничего больше, чем просто статус отсюда.

113
00:09:51,850 --> 00:09:55,120
И поэтому, когда сообщение опций будет получено,

114
00:09:55,120 --> 00:10:00,060
когда это будет отвечать, мы увидим, какие результаты, когда мы отправим запрос опциона

115
00:10:02,570 --> 00:10:05,230
со стороны клиента на сторону сервера в короткий рейс.

116
00:10:05,230 --> 00:10:08,910
Теперь, эти варианты, я собираюсь применить к каждому маршруту.

117
00:10:08,910 --> 00:10:11,998
Итак, для DishID, для

118
00:10:11,998 --> 00:10:16,560
Dishid/комментариев, а также для

119
00:10:16,560 --> 00:10:22,605
начала Dishid/комментариев, /:commentID.

120
00:10:24,210 --> 00:10:28,417
Итак, во всех случаях, я собираюсь применить те же варианты там.

121
00:10:30,360 --> 00:10:34,090
Теперь, возвращаясь назад, для

122
00:10:34,090 --> 00:10:39,290
GET, я собираюсь просто применить Cors.

123
00:10:39,290 --> 00:10:46,474
Итак, для запроса GET, я скажу, Cors.Cors,

124
00:10:46,474 --> 00:10:51,243
поэтому обратите внимание, что это первое промежуточное программное обеспечение, которое мы применим, и

125
00:10:51,243 --> 00:10:54,660
после этого оно перейдет к этому сообщению здесь.

126
00:10:54,660 --> 00:10:58,380
Таким образом, промежуточное программное обеспечение Cors вводится там.

127
00:10:58,380 --> 00:11:05,750
Для POST они будут применять Cors.CorsWithOptions.

128
00:11:05,750 --> 00:11:10,240
То же самое для этого, PUT,

129
00:11:12,704 --> 00:11:16,760
DELETE.

130
00:11:16,760 --> 00:11:21,550
То же самое для остальных POST, PUT и

131
00:11:21,550 --> 00:11:25,780
DELETE на всех остальных маршрутах здесь.

132
00:11:25,780 --> 00:11:31,562
Для GET мы просто будем использовать cors,

133
00:11:31,562 --> 00:11:38,124
поэтому позвольте мне просто применить CorsWithOptions для POST,

134
00:11:38,124 --> 00:11:43,437
PUT и DELETE во всех маршрутах здесь,

135
00:11:43,437 --> 00:11:47,201
поэтому POST, PUT и DELETE.

136
00:11:49,100 --> 00:11:52,711
Теперь для операции GET, как мы видели для

137
00:11:52,711 --> 00:11:57,750
версии DishRouter, я просто применил cors.cors,

138
00:11:57,750 --> 00:12:02,910
поэтому я собираюсь скопировать это, а затем применить его ко всем GET.

139
00:12:04,290 --> 00:12:09,580
Итак, для этого GET, затем прокручивая вниз для этого GET,

140
00:12:09,580 --> 00:12:16,340
а затем и для последнего, также я применим тот же вариант.

141
00:12:16,340 --> 00:12:19,770
Итак, мой DishRouter теперь обновлен.

142
00:12:19,770 --> 00:12:23,672
Теперь я собираюсь сделать то же самое с PromorOuter,

143
00:12:23,672 --> 00:12:28,180
LeaderRouter, UploadRouter, а также users.js.

144
00:12:28,180 --> 00:12:32,660
Итак, давайте откроем LeaderRouter следующим образом.

145
00:12:32,660 --> 00:12:37,127
В LeaderRouter первое, конечно, заключается в том, чтобы

146
00:12:37,127 --> 00:12:41,086
включить модуль узла на основе файла cors, поэтому

147
00:12:41,086 --> 00:12:46,620
позвольте мне скопировать его, а затем вставить его в LeaderRouter.

148
00:12:46,620 --> 00:12:52,970
Затем параметры, я собираюсь применить то же самое к LeaderRouter также.

149
00:12:52,970 --> 00:12:58,230
Поэтому для LeaderRouter я применим CorsWithOptions,

150
00:12:58,230 --> 00:13:01,370
а затем то же самое с LeaderRouter или LeaderID.

151
00:13:01,370 --> 00:13:08,190
У вас есть только два маршрута, поэтому я буду применять варианты для обоих.

152
00:13:08,190 --> 00:13:12,160
Для операций GET

153
00:13:12,160 --> 00:13:15,905
мне нужно применить cors.cors, поэтому скопировав это из DishRouter.

154
00:13:17,180 --> 00:13:20,300
Этот GET, я применим то же самое,

155
00:13:20,300 --> 00:13:24,120
а затем и этот GET, я применим то же самое.

156
00:13:24,120 --> 00:13:31,680
Теперь, для POST, PUT и DELETE, как вы видели, мы применим Cors.CORSWithOptions,

157
00:13:37,239 --> 00:13:40,443
Для POST,

158
00:13:40,443 --> 00:13:45,790
затем PUT и DELETE.

159
00:13:45,790 --> 00:13:50,462
И то же самое для POST, PUT и

160
00:13:50,462 --> 00:13:54,850
DELETE LeaderID также.

161
00:13:54,850 --> 00:13:59,410
Итак, теперь мой LeaderRouter обновлен, давайте перейдем к Promorouter.

162
00:13:59,410 --> 00:14:05,537
И в PromorOuter также давайте начнем снизу здесь для

163
00:14:05,537 --> 00:14:09,970
DELETE, CorsWithOptions, PUT, POST.

164
00:14:11,130 --> 00:14:18,400
Затем к этому DELETE, PUT, POST.

165
00:14:18,400 --> 00:14:22,036
И для GET, конечно,

166
00:14:22,036 --> 00:14:29,480
cors.cors следуют за этим GET и другим GET ниже здесь.

167
00:14:31,680 --> 00:14:36,620
А затем, давайте импортируем эти Cors,

168
00:14:36,620 --> 00:14:40,782
так что копируем это из моего LeaderRouter.

169
00:14:40,782 --> 00:14:44,940
Затем мы импортируем здесь Cors, а затем параметры.

170
00:14:44,940 --> 00:14:48,713
Итак, я собираюсь скопировать варианты отсюда, а

171
00:14:48,713 --> 00:14:54,190
затем перейти в Promorouter, я применим параметры здесь.

172
00:14:56,020 --> 00:15:02,913
А также к другим PromorOuter, те же варианты.

173
00:15:02,913 --> 00:15:06,090
Теперь загружаем маршрутизатор.

174
00:15:06,090 --> 00:15:11,801
Поэтому перейдите в UploadRouter, снова

175
00:15:11,801 --> 00:15:17,945
импортируйте, Cors,

176
00:15:26,379 --> 00:15:30,904
Затем, для UploadRouter.Route,

177
00:15:30,904 --> 00:15:33,820
позвольте мне применить параметры там.

178
00:15:36,859 --> 00:15:39,929
И для GET

179
00:15:39,929 --> 00:15:44,590
мы скажем cors.cors.

180
00:15:44,590 --> 00:15:48,698
POST будет cors.CORSWithOptions.

181
00:15:52,360 --> 00:15:59,770
То же самое для, PUT.

182
00:15:59,770 --> 00:16:04,510
И удалите, поэтому мой маршрутизатор загрузки обновляется.

183
00:16:05,800 --> 00:16:08,090
Последний из них — пользователи.

184
00:16:08,090 --> 00:16:12,447
Итак, в пользователях, позвольте мне,

185
00:16:21,187 --> 00:16:25,157
Импортировать автомобили, а

186
00:16:25,157 --> 00:16:30,078
затем, в этом случае, потому что мы делаем router.get, router.post и так далее.

187
00:16:30,078 --> 00:16:37,500
Поэтому для каждого из них я собираюсь пойти и явно применить,

188
00:16:45,144 --> 00:16:50,900
cars.CarsWithOptions, даже для GET здесь.

189
00:16:50,900 --> 00:16:54,398
Поскольку GET выполняется администратором здесь,

190
00:16:54,398 --> 00:16:57,730
никакому другому пользователю не может быть разрешено это выполнять.

191
00:16:57,730 --> 00:17:03,527
Но регистрация, также CarsWithOptions для

192
00:17:03,527 --> 00:17:10,540
входа также я буду применять, Вот и все.

193
00:17:10,540 --> 00:17:12,966
Давайте сохраним все изменения, чтобы

194
00:17:12,966 --> 00:17:17,147
у нас были обновления всех различных маршрутов для использования автомобилей.

195
00:17:17,147 --> 00:17:23,860
Давайте теперь пойдем и запустим наш сервер, а затем посмотрим, как эти машины нам помогают.

196
00:17:23,860 --> 00:17:27,122
Перейдя к терминалу,

197
00:17:27,122 --> 00:17:31,857
позвольте мне запустить сайт сервера здесь.

198
00:17:31,857 --> 00:17:34,947
И когда сервер запущен,

199
00:17:34,947 --> 00:17:39,990
давайте перейдем к нашему Почтальон, а затем отправим запрос GET.

200
00:17:42,015 --> 00:17:47,475
Поэтому, когда вы отправляете запрос GET локальному хосту: 3000diss,

201
00:17:47,475 --> 00:17:52,890
вы немедленно получите ответ со стороны сервера.

202
00:17:52,890 --> 00:17:57,690
Конечно, прямо сейчас моя база данных пуста, поэтому я получаю пустой массив здесь, но

203
00:17:57,690 --> 00:18:01,260
давайте, в частности, посмотрим на заголовки, потому что именно здесь

204
00:18:02,260 --> 00:18:06,720
интересная для нас точка в этом упражнении.

205
00:18:06,720 --> 00:18:11,573
Итак, здесь вы можете видеть, что у нас есть дополнительный заголовок

206
00:18:11,573 --> 00:18:15,930
здесь под названием Access-Control-Allow-Origin.

207
00:18:15,930 --> 00:18:20,306
Таким образом, Access-Control-Allow-Origin, как вы видите, обеспечивает дикий автомобиль,

208
00:18:20,306 --> 00:18:22,140
который является звездой здесь.

209
00:18:22,140 --> 00:18:25,874
Таким образом, любое происхождение для доступа к этому конкретному ресурсу,

210
00:18:25,874 --> 00:18:30,485
поэтому сервер говорит, что хорошо, любое происхождение будет разрешено получить доступ к этому ресурсу.

211
00:18:30,485 --> 00:18:32,960
Для запроса GET мы довольны этим.

212
00:18:34,070 --> 00:18:37,468
Давайте теперь войдем в систему, а

213
00:18:37,468 --> 00:18:42,530
затем, как только мы получим токен, позвольте мне скопировать токен здесь.

214
00:18:42,530 --> 00:18:49,210
А затем мы выполним операцию удаления на нашем сайте сервера.

215
00:18:50,320 --> 00:18:54,930
Поэтому мы удалим блюда здесь, поэтому

216
00:18:54,930 --> 00:19:01,360
позвольте мне включить, Token в заголовок авторизации здесь.

217
00:19:01,360 --> 00:19:05,561
А также обратите внимание, что для операции удаления я устанавливаю источник.

218
00:19:05,561 --> 00:19:13,280
Таким образом, другое поле здесь называется origin to httpslocalhost:3343 здесь.

219
00:19:13,280 --> 00:19:16,680
Таким образом, указывая, что эта операция удаления фактически

220
00:19:17,860 --> 00:19:20,740
пытается удалить в этом конкретном происхождении здесь.

221
00:19:22,170 --> 00:19:28,521
И поэтому, когда мы выполняем эту операцию так, если вы делаете это из браузера,

222
00:19:28,521 --> 00:19:33,142
источник будет автоматически установлен браузером

223
00:19:33,142 --> 00:19:37,779
на основе веб-страницы, из которой исходит запрос.

224
00:19:37,779 --> 00:19:43,400
Но здесь, поскольку мы используем Почтальона, я должен явно установить происхождение здесь.

225
00:19:43,400 --> 00:19:47,060
Поэтому позвольте мне отправить запрос с этим полем происхождения, установленным здесь.

226
00:19:47,060 --> 00:19:51,415
И тогда вы заметите, что поле заголовка теперь содержит

227
00:19:51,415 --> 00:19:57,615
Access-Control-Allow-Origin с указанным здесь локальным хостом: 3443.

228
00:19:57,615 --> 00:20:02,280
И как вы заметите, что это происхождение находится в белом списке.

229
00:20:02,280 --> 00:20:06,520
Вот почему этот Access-Control-Allow-Origin установлен на

230
00:20:06,520 --> 00:20:10,520
тот же источник, что и мы там указали.

231
00:20:10,520 --> 00:20:15,927
Если указать другой источник, например,

232
00:20:15,927 --> 00:20:23,430
если указать, например, Say localhost:2000.

233
00:20:23,430 --> 00:20:30,490
Вы заметите, что в ответе, исходящем от сервера,

234
00:20:30,490 --> 00:20:36,210
это не будет иметь Access-Control-Allow-Origin, установленного здесь.

235
00:20:36,210 --> 00:20:42,790
Потому что этот конкретный адрес не находится в белом списке на сайте сервера.

236
00:20:42,790 --> 00:20:45,710
Давайте теперь посмотрим на пример предполетного запроса.

237
00:20:45,710 --> 00:20:51,749
Чтобы сделать это, в Почтальоне выберите Опции здесь,

238
00:20:51,749 --> 00:20:56,718
а затем давайте отправим предварительный запрос

239
00:20:56,718 --> 00:21:00,650
локальному хосту: 3443diss.

240
00:21:00,650 --> 00:21:05,170
И в заголовке мы будем,

241
00:21:05,170 --> 00:21:10,725
Поместите происхождение как https: localhost3443.

242
00:21:10,725 --> 00:21:18,120
И затем это отправить этот запрос на сервер.

243
00:21:18,120 --> 00:21:22,575
И в ответ на этот запрос опций, который вы отправили на сервер,

244
00:21:22,575 --> 00:21:27,540
вы заметите, что в ответном сообщении мы скажем 204 No Content.

245
00:21:27,540 --> 00:21:31,790
Здесь нет содержимого, подлежащего возврату.

246
00:21:31,790 --> 00:21:39,110
Но, когда вы посмотрите на заголовки ответного сообщения, которое приходит, обратите внимание, что

247
00:21:39,110 --> 00:21:43,960
у нас есть Access-Control-Allow-Origin, чтобы установить это значение.

248
00:21:43,960 --> 00:21:47,750
Также обратите внимание, что он устанавливает методы Access-Control-Allow.

249
00:21:47,750 --> 00:21:52,340
И здесь он указывает те методы, которые сервер будет

250
00:21:52,340 --> 00:21:55,500
готов принять в этой конечной точке.

251
00:21:55,500 --> 00:22:00,880
Таким образом, вы информируете клиента о том, что

252
00:22:00,880 --> 00:22:06,240
все эти методы приемлемы для сервера в соответствующей конечной точке.

253
00:22:06,240 --> 00:22:12,120
Итак, вот как мы можем сделать предполетный запрос.

254
00:22:12,120 --> 00:22:16,130
Отправляя сначала сообщение запроса параметров, а

255
00:22:16,130 --> 00:22:19,700
затем получая обратно информацию с сервера здесь.

256
00:22:19,700 --> 00:22:24,030
И, как вы помните, это то, что мы настроили в

257
00:22:24,030 --> 00:22:29,160
части опций каждой из конечных точек маршрутизатора.

258
00:22:29,160 --> 00:22:34,098
Так вот как мы можем настроить наш модуль узлов автомобилей, а

259
00:22:34,098 --> 00:22:40,490
затем настроить наш сервер, чтобы отвечать с различными сообщениями заголовков.

260
00:22:40,490 --> 00:22:43,360
Этим мы завершаем это упражнение.

261
00:22:43,360 --> 00:22:48,080
В этом упражнении мы видели, как мы можем настроить наш сервер, чтобы иметь возможность отправлять

262
00:22:48,080 --> 00:22:53,080
обратно различные заголовки, связанные с курсом в ответном сообщении

263
00:22:53,080 --> 00:22:55,190
, используя модуль узла курса.

264
00:22:56,330 --> 00:22:58,196
С этим мы завершаем это упражнение.

265
00:22:58,196 --> 00:23:01,515
Это хорошее время для вас, чтобы сделать комментарий GIT с курсом сообщений.

266
00:23:01,515 --> 00:23:02,467
[ МУЗЫКА]