Распределение ресурсов между источниками (CORS) — это механизм, позволяющий ограничивать ресурсы из другого домена в веб-браузере.
Например, если вы нажмете на HTML5-видеоплеер в HTML5 демо-разделах. это спросит разрешение камеры. если пользователь разрешит разрешение, то только он откроет камеру или не откроет камеру для веб-приложений.
Создание запроса CORS
Здесь Chrome, Firefox, Opera и Safari используют объект XMLHttprequest2, а Internet Explorer использует аналогичный объект XDomainRequest, объект.
function createCORSRequest(method, url) { var xhr = new XMLHttpRequest(); if ("withCredentials" in xhr) { // Check if the XMLHttpRequest object has a "withCredentials" property. // "withCredentials" only exists on XMLHTTPRequest2 objects. xhr.open(method, url, true); } else if (typeof XDomainRequest != "undefined") { // Otherwise, check if XDomainRequest. // XDomainRequest only exists in IE, and is IE's way of making CORS requests. xhr = new XDomainRequest(); xhr.open(method, url); } else { // Otherwise, CORS is not supported by the browser. xhr = null; } return xhr; } var xhr = createCORSRequest('GET', url); if (!xhr) { throw new Error('CORS not supported'); }
Описатели событий в CORS
Sr.No. | Обработчик событий и описание |
---|---|
1 |
onloadstart Запускает запрос |
2 |
в процессе Загружает данные и отправляет данные |
3 |
OnAbort Отменить запрос |
4 |
OnError запрос не выполнен |
5 |
в процессе успешно загрузить запрос |
6 |
ontimeout истекло время ожидания |
7 |
onloadend Когда запрос завершен, либо успешный, либо неудачный |
onloadstart
Запускает запрос
в процессе
Загружает данные и отправляет данные
OnAbort
Отменить запрос
OnError
запрос не выполнен
в процессе
успешно загрузить запрос
ontimeout
истекло время ожидания
onloadend
Когда запрос завершен, либо успешный, либо неудачный
Пример события onload или onerror
xhr.onload = function() { var responseText = xhr.responseText; // process the response. console.log(responseText); }; xhr.onerror = function() { console.log('There was an error!'); };
Пример CORS с обработчиком
Ниже приведен пример makeCorsRequest () и обработчик загрузки