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

2
00:00:04,770 --> 00:00:09,509
بعد فهم بعض التفاصيل حول كورس في المحاضرة السابقة،

3
00:00:09,509 --> 00:00:15,670
في هذا التمرين سوف نستخدم وحدة عقدة كورس وتكوين الخادم السريع لدينا.

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
للبدء كما تتوقع، سنقوم أولا بتثبيت وحدة عقدة كورس.

7
00:00:36,060 --> 00:00:39,280
لذلك في موجه، اكتب npm install.

8
00:00:39,280 --> 00:00:46,170
تأكد من أنك في مجلد خادم الارتباك، ثم cors - حفظ.

9
00:00:46,170 --> 00:00:48,160
ثم قم بتثبيت وحدة كورس.

10
00:00:49,160 --> 00:00:54,140
وكما ترون، في هذه الدورة أنا باستخدام كورس @2 .8.4.

11
00:00:54,140 --> 00:00:57,530
بمجرد تثبيت وحدة كورس،

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
في المقام الأول وحدة كورس لأن هذا هو المكان الذي يتم فيه خدمة جميع الطرق المختلفة.

16
00:01:14,980 --> 00:01:22,130
حتى في مجلد المسارات، وسوف أضيف في ملف جديد باسم cors.js.

17
00:01:22,130 --> 00:01:27,180
ثم في هذا الملف، سنقوم بتكوين وحدة كورس.

18
00:01:27,180 --> 00:01:32,795
الآن هذه هي طريقي لوضع جميع المعلومات المتعلقة

19
00:01:32,795 --> 00:01:38,980
كورس في وحدة عقدة واحدة منفصلة قائمة على ملف هنا.

20
00:01:38,980 --> 00:01:42,445
حتى في موجه،

21
00:01:42,445 --> 00:01:47,527
اسمحوا لي أن أحاول كونست إكسبريس =

22
00:01:47,527 --> 00:01:53,979
تتطلب ('إكسبريس').

23
00:01:53,979 --> 00:01:58,795
ودعونا نحصل

24
00:02:02,831 --> 00:02:05,263
على وحدة الكورس في.

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
إلى القائمة البيضاء الخاصة بك لأنني أحاول صراحة تكوين بلدي كورس الوحدة النمطية.

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
وداخل هذا أنا ذاهب لمعرفة أن الخيارات كورس هنا.

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 هنا،

63
00:05:36,305 --> 00:05:42,565
فسترد الوحدة النمطية الخاصة بي قائلة إن التحكم في الوصول يسمح بالأصل، ثم قم بتضمين هذا الأصل في

64
00:05:42,565 --> 00:05:47,590
الرؤوس باستخدام عنصر التحكم في الوصول يسمح بمفتاح الأصل هناك.

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
{ الأصل: false}.

71
00:06:19,610 --> 00:06:24,815
لذلك عند تعيين الأصل إلى 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
ثم سنقول رد الاتصال (فارغة، كورسوبتيونس)؛.

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
في الوصول ألوريجين مع أصل الطلب تعيين في هناك.

80
00:07:02,313 --> 00:07:08,490
وإلا فإنه لن تشمل التحكم في الوصول AlloWoriGin عندما يرد.

81
00:07:08,490 --> 00:07:16,250
الآن، من هذه الوظيفة، سنقوم بتصدير كورس كما كورس هنا.

82
00:07:16,250 --> 00:07:20,724
الآن، إذا قمت بتكوين وحدة كورس ببساطة عن طريق قول كورس

83
00:07:20,724 --> 00:07:24,751
دون أي خيارات، ثم وهذا يعني أن هذا سوف الرد

84
00:07:24,751 --> 00:07:29,597
مرة أخرى مع التحكم في الوصول ألوريجين مع عدد بطاقات البرية.

85
00:07:29,597 --> 00:07:32,748
هناك بعض القواعد التي يكون من المقبول القيام بها،

86
00:07:32,748 --> 00:07:35,660
خاصة عندما نقوم بإجراء عمليات الحصول على.

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
وبعد ذلك سنقوم بتوريد) CorsoptionsDelegate)

90
00:07:50,639 --> 00:07:56,060
وظيفة التي قمنا بتحديدها للتو في وقت سابق.

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
خلاف ذلك، سنقوم ببساطة استخدام كورس القياسية.

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
لذلك سنبدأ مع ديشروتر.

97
00:08:22,040 --> 00:08:27,402
لذلك دعونا فتح ديشروتر،

98
00:08:27,402 --> 00:08:32,406
وفي ديشروتر، سنقوم أولا

99
00:08:32,406 --> 00:08:37,064
[الضوضاء] استيراد [الضوضاء]. /كورس.

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
لذلك، بالنسبة إلى

118
00:10:11,998 --> 00:10:16,560
disHid، للخداع/التعليقات، وأيضا

119
00:10:16,560 --> 00:10:22,605
لبدء تشغيل/التعليقات، /: 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
للحصول على جيت، وأنا ذاهب ببساطة لتطبيق كورس.

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
لذلك يتم تقديم الوسيطة كورس هناك.

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، سنستخدم فقط الكورس،

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
لذلك، لهذا جيت، ثم التمرير لأسفل لهذا جيت،

140
00:12:09,580 --> 00:12:16,340
ثم أيضا للآخر، كما سأطبق نفس الخيار.

141
00:12:16,340 --> 00:12:19,770
لذلك يتم تحديث ديشروتر الخاص بي الآن.

142
00:12:19,770 --> 00:12:23,672
الآن، أنا ذاهب إلى القيام بنفس الشيء مع برومورووتر،

143
00:12:23,672 --> 00:12:28,180
ليدررووتر، و أوبلادوراتور، وأيضا users.js.

144
00:12:28,180 --> 00:12:32,660
لذلك، دعونا فتح ليدرروتر المقبل.

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
لذلك ليديرووتر، وسوف تطبيق

150
00:12:58,230 --> 00:13:01,370
كورسويثوبوتيونس، ثم نفس الشيء مع ليدرروتر أو ليدريد.

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
حتى الآن يتم تحديث بلدي ليدررووتر، دعونا نذهب إلى برومورووتر.

162
00:13:59,410 --> 00:14:05,537
وفي برومورووتر أيضا، دعونا نبدأ في الجزء السفلي هنا

163
00:14:05,537 --> 00:14:09,970
لحذف، كورسويثوبوتيونس، بوت، بوست.

164
00:14:11,130 --> 00:14:18,400
ثم إلى هذا حذف، بوت، بوست.

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
وبعد ذلك، دعونا استيراد هذا كورس،

168
00:14:36,620 --> 00:14:40,782
لذلك نسخ هذا من بلدي ليدرروتر.

169
00:14:40,782 --> 00:14:44,940
ثم نقوم باستيراد كورس هنا، ثم الخيارات.

170
00:14:44,940 --> 00:14:48,713
لذلك، أنا ذاهب لنسخ الخيارات من هنا ومن

171
00:14:48,713 --> 00:14:54,190
ثم الذهاب إلى برومورووتر، وسوف تطبيق الخيارات هنا.

172
00:14:56,020 --> 00:15:02,913
وأيضا إلى برومورووتر الأخرى، نفس الخيارات.

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
، استيراد، كورس،

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
لأنه يتم تنفيذ جيت من قبل المشرف هنا،

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
دعونا نذهب إلى ساعي البريد لدينا ومن ثم إرسال طلب جيت.

200
00:17:42,015 --> 00:17:47,475
لذلك عند إرسال طلب جيت إلى المضيف المحلي: 3000duses،

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
وبالتالي فإن الوصول - التحكم - السماح - الأصل كما ترون يوفر السيارة البرية،

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
اسمحوا لي تضمين، رمز في رأس التفويض هنا.

217
00:19:01,360 --> 00:19:05,561
ولاحظ أيضًا أنه بالنسبة لعملية الحذف، أقوم بتعيين الأصل.

218
00:19:05,561 --> 00:19:13,280
لذلك حقل آخر هنا يسمى الأصل إلى 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
إذا قمت بتحديد، قل 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
إلى المضيف المحلي: 3443days.

240
00:21:00,650 --> 00:21:05,170
وفي رأس سنقوم, وضع

241
00:21:05,170 --> 00:21:10,725
الأصل كما هتبس: 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 لا محتوى.

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
[ موسيقى]