~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ F0C0A933F64242857AB7856BD4833A22__1717755480 ✰
Заголовок документа оригинал.:
✰ XMLHttpRequest - Wikipedia ✰
Заголовок документа перевод.:
✰ XMLHttpRequest — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/XMLHttpRequest ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/f0/22/f0c0a933f64242857ab7856bd4833a22.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/f0/22/f0c0a933f64242857ab7856bd4833a22__translat.html ✰
Дата и время сохранения документа:
✰ 22.06.2024 05:23:34 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 7 June 2024, at 13:18 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

XMLHttpRequest — Википедия Jump to content

XMLHttpRequest

Из Википедии, бесплатной энциклопедии

XMLHttpRequest ( XHR ) — это API в форме JavaScript объекта которого , методы передают HTTP- запросы от веб-браузера к веб-серверу . [1] Эти методы позволяют браузерному приложению выполнять детальный вызов сервера и сохранять результаты в XMLHttpRequest. responseText атрибут . [2] XMLHttpRequest — это компонент Ajax-программирования . До появления Ajax гиперссылки и отправка форм были основными механизмами взаимодействия с сервером, часто заменяя текущую страницу другой. [2]

История [ править ]

Концепция XMLHttpRequest была задумана в 2000 году разработчиками Microsoft Outlook . [3] Затем эта концепция была реализована в браузере Internet Explorer 5 (2001 г.). Однако исходный синтаксис не использовал XMLHttpRequest идентификатор . Вместо этого разработчики использовали идентификаторы ActiveXObject("Msxml2.XMLHTTP") и ActiveXObject("Microsoft.XMLHTTP"). [4] Начиная с Internet Explorer 7 (2006 г.), все браузеры поддерживают XMLHttpRequest идентификатор. [4]

The XMLHttpRequest идентификатор теперь является де-факто стандартом во всех основных браузерах, включая Mozilla механизм компоновки Gecko (2002 г.), [5] Сафари 1.2 (2004 г.) и Опера 8.0 (2005 г.). [6]

Стандарты [ править ]

Консорциум Всемирной паутины (W3C) опубликовал рабочий проект спецификации объекта XMLHttpRequest 5 апреля 2006 года. [7] [а] 25 февраля 2008 г. W3C опубликовал рабочий проект спецификации уровня 2 . [8] На уровне 2 добавлены методы для отслеживания хода событий, разрешения межсайтовых запросов и обработки потоков байтов. В конце 2011 года спецификация уровня 2 была включена в исходную спецификацию. [9]

В конце 2012 года WHATWG взяла на себя разработку и поддерживает живой документ с помощью Web IDL . [10]

Использование [ править ]

Обычно отправка запроса с помощью XMLHttpRequest состоит из нескольких этапов программирования. [11]

  1. Создайте объект XMLHttpRequest, вызвав конструктор :
    вар   запрос   =   новый   XMLHttpRequest  (); 
    
  2. Вызовите метод «open», чтобы указать тип запроса, идентифицировать соответствующий ресурс и выбрать синхронную или асинхронную операцию:
    запрос  .   open  (  'GET'  ,   '/api/message'  ,   true   /* асинхронный */  ); 
    
  3. Установите прослушиватель событий, который будет уведомляться при изменении состояния запроса:
    запрос  .   onreadystatechange   =   слушатель  ; 
    
  4. Инициируйте запрос, вызвав метод send:
    запрос  .   отправлять  (); 
    
  5. Реагировать на изменения состояния в прослушивателе событий. Если сервер отправляет данные ответа, по умолчанию они фиксируются в свойстве «responseText». Когда объект перестает обрабатывать ответ, он переходит в состояние 4, состояние «готово».
    function   Listener  ()   { 
       // Проверяем, выполнен ли запрос и успешен ли он. 
        if   (  request.readyState  ==    4   &&   request.status   ==   200  ) 
         console  .   журнал  (  запрос  .  ответтекст  );    // Отображение текста. 
      } 
    

Помимо этих общих шагов, XMLHttpRequest имеет множество опций для управления отправкой запроса и обработкой ответа. К запросу можно добавить пользовательские поля заголовка, чтобы указать, как сервер должен его выполнить. [12] и данные можно загрузить на сервер, предоставив их в вызове «отправить». [13] Ответ можно преобразовать из формата JSON в удобный для использования объект JavaScript или обрабатывать постепенно по мере его поступления, а не ждать весь текст. [14] Запрос может быть прерван преждевременно [15] или настроен на провал, если не завершен в течение определенного периода времени. [16]

Междоменные запросы [ править ]

На заре развития Всемирной паутины было обнаружено, что можно нарушить безопасность пользователей, используя JavaScript для обмена информацией с одного веб-сайта с другим, менее авторитетным. Поэтому все современные браузеры реализуют одну и ту же политику происхождения , которая предотвращает многие подобные атаки, такие как межсайтовый скриптинг . Данные XMLHttpRequest подпадают под действие этой политики безопасности, но иногда веб-разработчики хотят намеренно обойти ее ограничения. Иногда это происходит из-за законного использования поддоменов, например, при создании XMLHttpRequest со страницы, созданной foo.example.com для получения информации от bar.example.com обычно терпит неудачу.

Существуют различные альтернативы для обхода этой функции безопасности, в том числе использование JSONP , совместное использование ресурсов между источниками (CORS) или альтернативы с такими плагинами, как Flash или Silverlight (оба сейчас устарели). XMLHttpRequest из разных источников указан в спецификации W3C XMLHttpRequest Level 2. [17] Internet Explorer не реализовал CORS до версии 10. Две предыдущие версии (8 и 9) предлагали аналогичную функциональность через API XDomainRequest (XDR). CORS теперь поддерживается всеми современными браузерами (настольными и мобильными). [18]

Протокол CORS имеет несколько ограничений и две модели поддержки. Простая . модель не позволяет устанавливать собственные заголовки запросов и не использует cookie файлы HEAD, GET и POST только методы запроса Кроме того, поддерживаются , а POST допускает только следующие типы MIME : «text/plain», «application/x-www-urlencoded» и « multipart/form-data ». Изначально поддерживалось только «text/plain». [19] Другая модель определяет, когда одна из непростых запрашивается функций, и отправляет предполетный запрос. [20] на сервер для согласования этой функции.

Получить альтернативу [ править ]

Выполнение программы с использованием асинхронных обратных вызовов XHR может представлять трудности с читаемостью и обслуживанием. В ECMAScript 2015 (ES6) добавлена ​​конструкция обещания для упрощения асинхронной логики. Браузеры с тех пор реализовали альтернативу fetch() интерфейс для достижения той же функциональности, что и XHR, с использованием обещаний вместо обратных вызовов.

Fetch также стандартизирован WHATWG. [21]

Пример [ править ]

выборка  (  '/api/message'  ) 
   .   then  (  ответ   =>   { 
     if   (  ответ  .  статус   !=   200  )   выдать   новую   ошибку  (  «Запрос не выполнен»  ); 
     вернуть   ответ  .  текст  (); 
   }) 
   .   then  (  текст   =>   { 
     console  .  log  (  text  ); 
   }); 

См. также [ править ]

Ссылки [ править ]

  1. ^ Махемофф, Майкл (2006). Шаблоны проектирования Ajax . О'Рейли. п. 92. ИСБН  978-0-596-10180-0 . В Javascript отсутствует переносимый механизм для общего сетевого взаимодействия[.] ... Но благодаря объекту XMLHttpRequest... Код Javascript может выполнять HTTP-вызовы обратно на исходный сервер[.]
  2. ^ Перейти обратно: а б Махемофф, Майкл (2006). Шаблоны проектирования Ajax . О'Рейли. п. 92. ИСБН  978-0-596-10180-0 .
  3. ^ «Статья по истории XMLHTTP от оригинального разработчика» . Alexhopmann.com. 31 января 2007 г. Архивировано из оригинала 30 января 2009 г. Проверено 14 июля 2009 г. Реальность такова, что клиентская архитектура GMail, похоже, повторяет черновой дизайн реализации Outlook Web Access для IE5 и более поздних версий Exchange 2000, который появился еще в 2000 году.
  4. ^ Перейти обратно: а б Махемофф, Майкл (2006). Шаблоны проектирования Ajax . О'Рейли. п. 93. ИСБН  978-0-596-10180-0 .
  5. ^ «Архив новостей от Mozillazine с указанием даты выпуска Safari 1.2» . Веблоги.mozillazine.org. Архивировано из оригинала 2 июня 2009 г. Проверено 14 июля 2009 г.
  6. ^ «Пресс-релиз с указанием даты выпуска Opera 8.0 на сайте Opera» . Opera.com. 19 апреля 2005 г. Проверено 14 июля 2009 г.
  7. ^ «Спецификация объекта XMLHttpRequest из рабочего проекта W3C уровня 1, выпущенного 5 апреля 2006 г.» . W3.org . Проверено 14 июля 2009 г.
  8. ^ «Спецификация объекта XMLHttpRequest из рабочего проекта W3C уровня 2, выпущенного 25 февраля 2008 г.» . W3.org . Проверено 14 июля 2009 г.
  9. ^ «Проект редактора XMLHttpRequest от 5 декабря 2011 г.» . w3.org . Проверено 5 декабря 2011 г.
  10. ^ ван Кестерен, Энн (19 февраля 2024 г.). XMLHttpRequest Уровень жизни (отчет) . Проверено 9 апреля 2024 г.
  11. ^ Холденер, Энтони Т. III (2008). Аякс: Полное руководство . стр. 70–71, 76.
  12. ^ ван Кестерен , 3.5.2.
  13. ^ ван Кестерен , 3.5.6.
  14. ^ ван Кестерен , 3.6.9.
  15. ^ ван Кестерен , 3.5.7.
  16. ^ ван Кестерен , 3.5.3.
  17. ^ «XMLHttpRequest Уровень 2» . Проверено 14 ноября 2013 г.
  18. ^ «Могу ли я использовать совместное использование ресурсов между источниками?» . Проверено 14 ноября 2013 г.
  19. ^ «XDomainRequest — ограничения, ограничения и обходные пути» . Проверено 14 ноября 2013 г.
  20. ^ «7.1.5 Запрос перекрестного происхождения с предполетной проверкой» . Проверено 25 апреля 2014 г.
  21. ^ «Выбрать стандарт» .

Примечания [ править ]

  1. ^ Стандарт редактировали Энн ван Кестерен из Opera Software и Дин Джексон из W3C.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: F0C0A933F64242857AB7856BD4833A22__1717755480
URL1:https://en.wikipedia.org/wiki/XMLHttpRequest
Заголовок, (Title) документа по адресу, URL1:
XMLHttpRequest - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)