рдирдорд╕реНрдХрд╛рд░, рдЗрд╕ рдЫреЛрдЯреА рд╕реА рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ JS рдореЗрдВ OOP, XMLHttpRequest рдСрдмреНрдЬреЗрдХреНрдЯ, рдкреНрд░реЙрдХреНрд╕реА рдкреИрдЯрд░реНрди рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд┐рддреНрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрддрд╛рдКрдВрдЧрд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдЬ рдРрд╕рд╛ рдХрд╛рдо рдерд╛ - рдПрдХ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рд╣рдорд╛рд░реЗ рдмреИрдХрдПрдВрдб рдХреЛ рдЗрддрдирд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдирдзрд┐рдХреГрдд рдХрд░реЗрдЧрд╛ рдпрджрд┐ рд╡рд╣ рдЖрдзреЗ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рди рд╣реЛред рдирддреАрдЬрддрди, рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЕрдЬрд╛рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдореЗрд░реЗ рд▓рд┐рдП рдЯреЙрдЯреЛрд▓реЙрдЬреА рдХреЗ рд▓рд┐рдП рдмрд╣рд╛рдирд╛), рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
рдЯреАрдХреЗ, рдЬреЛ рдореИрдВрдиреЗ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ
рдпрджрд┐ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ * рдХреБрдЫ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ * рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди рдлрд╝реЙрд░реНрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдУрд╡рд░рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЖрдИрдкреАрдлрд╝реНрд░реЗрдо рдХреЗ), рдФрд░ рдЙрд╕реЗ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░реЗрдВ (рдлрд┐рд░, рджреНрд╡рд╛рд░рд╛) ayaksu, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдкреГрд╖реНрда рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд╣реАрдВ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдпрд╣ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдЬреЛ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ, рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдиреЗ рд╡рд╛рд▓рд╛ js-code рдХреБрдЫ рднреА рдорд╣рд╕реВрд╕ рди рдХрд░реЗ, рдЕрд░реНрдерд╛рдд, рдЖрдкрдХреЛ рд╕рднреА рдХреЙрд▓рдмреИрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛ (рдЙрдиреНрд╣реЗрдВ рддрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рд▓реЗрдХрд┐рди рдЬрдм рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдФрд░ рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдЖрддреА рд╣реИ - рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдЕрдиреБрд░реЛрдз рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ, рдЖрдкрдХреЛ рд╕рднреА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВред рдФрд░, рд╣рд╛рдВ, * рдХреБрдЫ рдРрд╕рд╛ рдЬреЛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ * - рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб "403" рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рдХрд╛рдп "401" (401) рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрддреНрдорд╛ рдореЗрдВ рдмрдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдбрдмреНрд▓реНрдпреВрдбрдмреНрд▓реНрдпреВрдбрдмреНрд▓реНрдпреВ-рдСрдереЗрдВрдЯрд┐рдХреЗрдЯ рдореЗрдВ, рд▓реЗрдХрд┐рди рдмрд╕ 403 рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдХрд░реАрдм рд╣реИ)ред
рдореИрдВ рдХреИрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ
рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╣рд┐рдЪрдХрд┐рдЪрд╛рд╣рдЯ рдХреЗ, рдореИрдВ рдПрдХ рдирд┐рд░реНрдгрдп рдкрд░ рдЖрдпрд╛ - рдкреНрд░реЙрдХреНрд╕реА рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдмрдирд╛рдирд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ, рдФрд░ рдЗрд╕реЗ XMLHttpRequest (XHR) рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ, рдФрд░ рдЗрд╕ рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА XHR рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВред рдФрд░ рд╣рд╛рдБ, рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдХреЛ рджреВрд╕рд░реА рдХрдХреНрд╖рд╛ рд╕реЗ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣рд╛рдБ рдХрдХреНрд╖рд╛ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рд╣реИ (рдпрд╛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк, рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдореИрдВ рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реВрдВ :()ред
рддреЛ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╡рд░реНрдЧ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдирдП рдХреНрд▓рд╛рд╕рдиреЗрдо () рдХреЗ рд╕рд╛рде рддреНрд╡рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдк рд╡рд╣рд╛рдВ рддрд░реАрдХреЗ рдФрд░ рдЧреБрдг рдХреИрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛
Google рдкрд░ рд╕рдм рдХреБрдЫ рджреЗрдЦрдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рд╡рд░реНрдЧ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ:
(function () { "use strict"; window.SomeClass = function () { var randNumber = Math.random(); this.someMethod = function () { console.log(randNumber); }; this.randomized = randNumber; }; })();
рдпрджрд┐ рдЖрдк рдзреНрдпрд╛рди рджреЗрдВ, рдореИрдВрдиреЗ рддреБрд░рдВрдд рд╕рднреА рдХреЛрдб рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рддреБрд░рдВрдд рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛, рдпрд╣ JS рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрднреНрдпрд╛рд╕ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рд╕реНрд╡рдЪреНрдЫрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рдо рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдХреЛ рд░реЛрдХ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ), рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХрд╛рд░рдг (рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ) рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдПрдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЪрд░ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реИрд╢реНрд╡рд┐рдХ), рдЬрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рджреБрднрд╛рд╖рд┐рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рджреЗрдЦреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЪрд░ рдХреА рдЦреЛрдЬ рдирд┐рдХрдЯрддрдо рджрд╛рдпрд░реЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рддрдХ рдЬрд╛рддрд╛ рд╣реИ)ред рдореИрдВ рднреА рд╕рдЦреНрдд рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЖрдкрдХреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдЖрдИрдбреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдЖрдк рдЬреЗрдПрд╕рдПрд▓рдЖрдИрдПрдирдЯреА / рдЬреЗрдПрд╕рд╣рд┐рдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред рдФрд░ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ "рдХреНрд▓рд╛рд╕" SomeClass рдмрдирд╛рдпрд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдХреЛрдб рд╣реИред рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░реИрдВрдбрдирдореНрдмрд░ рдЪрд░ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛ рдХреЗ рдЕрдВрджрд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг), рдХреБрдЫ рдореАрдереЛрдб () рд╡рд┐рдзрд┐, рдЬреЛ рд╕рдорд╛рди рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдирдВрдмрд░ рдкрд░ рдХрдВрд╕реЛрд▓ рднреЗрдЬрддреА рд╣реИ, рдФрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдкрддреНрддрд┐, рдЬреЛ рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред ред
рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдмрдирд╛рдирд╛:
(function () { "use strict";
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореВрд▓ XMLHttpRequest (рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ / sv рдЖрдк рд░реВрд╕реА
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкреГрд╖реНрда рдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ) рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред рд╣рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╣рдо рд╢рд░реАрд░ рдореЗрдВ 403 рд╡реЗрдВ рдЙрддреНрддрд░ рдФрд░ 401 рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рддреБрд░рдВрдд рд▓реЙрдЧрд┐рди рдлреЙрд░реНрдо рдЦреЛрд▓рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рдХрд╕реНрдЯрдо рдХреЙрд▓рдмреИрдХ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рдЧрд░реНрднрдкрд╛рдд" рдХреЗ рдмрд╛рдж рдЕрдиреБрд░реЛрдз рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд╕рднреА рдбреЗрдЯрд╛ рдЬреЛ рдХреБрдЫ рд╕реЗрдЯрд░ рд╡рд┐рдзрд┐рдпреЛрдВ (рдУрдкрди рдФрд░ рд╕реЗрдВрдб рд╕рд╣рд┐рдд) рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЬрдм рдЕрдиреБрд░реЛрдз рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрди рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд╣реБрдИ рд╣реИ - рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрдм рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛, рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдСрдиреНрд░реЗрдбрд┐рд╕реНрдЯреЗрдЯрдЪреЗрдВрдЬ рдШрдЯрдирд╛ рдХреЛ рдЖрдЧ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдиреБрд░реЛрдз рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ рдЪрд╛рд▓реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рд╣реИ - рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ onreadystatechange рдШрдЯрдирд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдЪрд╛рд░ рдмрд╛рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд░реЗрдбреАрд╕реНрдЯреЗрдЯ рд╕рдВрдкрддреНрддрд┐ рдмрдврд╝рд╛рдИ рдЬрд╛рддреА рд╣реИ (рдпрд╣рд╛рдВ рдЗрд╕рдХреЗ рд╕рднреА
рдореВрд▓реНрдп рд╣реИрдВ ), рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдХрд╕реНрдЯрдо рдХреЙрд▓рдмреИрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрдм рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрдВ рдХрд┐ рдЙрддреНрддрд░ рд╡реИрдз рд╣реИред рд▓реЗрдХрд┐рди, рдЕрдЧрд░ "рдкреВрд░реНрдг" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рддреАрди рд░реЗрдбреАрд╕реНрдЯреЗрдЯ (2 рд╕реЗ 4 рддрдХ) рдХреЗ рд╕рд╛рде рддреАрди рдмрд╛рд░ рдЖрдЧ рд▓рдЧ рдЬрд╛рдП, рдмрд╕ рдПрдХ рд▓реВрдк рдореЗрдВред рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЙрд╕рдХреЗ рдмрд╛рдж рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЫреВ рдордВрддрд░
(function () { "use strict";
рдЗрд╕рд▓рд┐рдП, рдХрд╛рдлреА рд╕рд░рд▓ рд░реВрдк рд╕реЗ, рд╣рдордиреЗ XHR рдХреЛ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ "рдЕрдирдЕрдереЗрдВрдЯреЗрдб" рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреЗрдЬреЗ рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрдЧрд╛ред
PS рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреА, рдУрдкреЗрд░рд╛ рдореЗрдВ getAllResponseHeaders () рд╡рд┐рдзрд┐ WRONG_THIS_ERR рдлреЗрдВрдХрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рд╣реИред
рдкреАрдкреАрдкреА, рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рди рдХреЗрд╡рд▓ рдЕрд╕рдВрддреЛрд╖ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИ
UPD рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЛрдЪрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд░реВрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЬрдЧрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдирд╣реАрдВ рд╣реИ), рддреЛ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
github.com/ilinsky-xmlhttprequest