您好,登錄后才能下訂單哦!
這篇文章主要介紹了CORS指的是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
什么是CORS?
CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。
它允許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制。
優缺點
優點:
1.支持POST以及所有HTTP請求
2.安全性相對JSOP更高
3.前端要做的事兒比較少
缺點:
1.不兼容老版本瀏覽器,如IE9及其以下
2.需要服務端支持
3.使用起來稍微復雜了些
怎么用?
前端部分:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>CORS跨域請求</title> <script> function createCORSRequest(method, url) { var xhr = new XMLHttpRequest(); if ("withCredentials" in xhr) { xhr.open(method, url, true); } else if (typeof XDomainRequest != "undefined") { xhr = new XDomainRequest(); xhr.open(method, url); } else { xhr = null; } return xhr; } window.onload = function () { var oBtn = document.getElementById('btn1'); oBtn.onclick = function () { var xhr = createCORSRequest("get", "http://wpdic.com/cors.php"); if (xhr) { xhr.onload = function () { var json = JSON.parse(xhr.responseText); alert(json.a); }; xhr.onerror = function () { alert('請求失敗.'); }; xhr.send(); } }; }; </script> </head> <body> <input type="button" value="獲取數據" id="btn1"> </body> </html>
注意點:
1.上面代碼兼容IE8,因為用了XDomainRequest
2.其它代碼你就當成XMLHttpRequset用,別考慮什么2.0不2.0的
3.如果你想post數據,可以往 xhr.send()里面搞
4.這里不建議大家研究"simple methdod"之類的知識,代碼弄懂了會用就行,遇到問題了再查也不晚
后臺部分:
<?php header('content-type:application:json;charset=utf8'); header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:GET,POST'); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Allow-Headers:x-requested-with,content-type'); $str = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; echo $str; ?>
注意點:
1.Access-Control-Allow-Origin: 表示允許任何域名跨域訪問,如果需要指定某域名才允許跨域訪問,只需把Access-Control-Allow-Origin:改為Access-Control-Allow-Origin:允許的域名,實際工作也要這么做2.Access-Control-Allow-Methods:GET,POST 規定允許的方法,建議控制嚴格些,不要隨意放開DELETE之類的權限
2.Access-Control-Allow-Credentials
該字段可選。它的值是一個布爾值,表示是否允許發送Cookie。默認情況下,Cookie不包括在CORS請求之中。設為true,即表示服務器明確許可,Cookie可以包含在請求中,一起發給服務器。這個值也只能設為true,如果服務器不要瀏覽器發送Cookie,刪除該字段即可。
感謝你能夠認真閱讀完這篇文章,希望小編分享CORS指的是什么內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。