跨源資源共享(CORS)是一種允許來自web瀏覽器中另一個域的受限資源的機制。
假設,如果您在HTML5演示部分中單擊HTML5-video player。它會得到攝像機的許可。如果用戶允許該權限,則只有它會打開相機,否則它不會爲web應用程式打開相機。
Making a CORS request
這裡Chrome、Firefox、Opera和Safari都使用XMLHttprequest2對象,而Internet Explorer使用類似的XDomainRequest對象object。
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'); }
Event handles in CORS
Sr.No. | Event Handler & Description |
---|---|
1 | 加載開始 啓動請求 |
2 | 進展 加載數據並發送數據 |
3 | 奧納博特 中止請求 |
4 | 誤差 請求失敗 |
5 | 加載 請求加載成功 |
6 | 準時下班 請求完成之前發生超時 |
7 | 在線 當請求完成時,無論是成功還是失敗 |
Example of onload or onerror event
xhr.onload = function() { var responseText = xhr.responseText; // process the response. console.log(responseText); }; xhr.onerror = function() { console.log('There was an error!'); };
Example of CORS with handler
下面的示例將顯示makeCorsRequest()和onload處理程序的示例