跨域的三种解决方案

跨域问题的出现是由于浏览器为了防止csrf攻击,避免恶意攻击而采取的同源策略限制,也就是当一个页面使用XMLHTTPRequest对象发送HTTP请求时(XHR),必须保证当前页面和请求的资源是同源的(即协议,域名和端口号要完全一致,否则浏览器就会阻止跨域请求返回额的数据)。

如何解决跨域的问题的呢, 有以下三种方案

1,代理的方案,将请求资源的操作通过一层代理,然后取回数据,再从代理层把数据返给浏览器,由于代理层和浏览器是同源的,这样就解决了跨域的问题(通常试用于node层)

2,放开服务端跨域限制,通过添加response的header的方法(参考header('Access-Control-Allow-Origin:*'); //允许所有来源访问  header('Access-Control-Allow-Method:POST,GET'); // 允许访问的方式)

3,JSONP的方式,JSONP方式的原理是将返回数据以资源的方式放在<script>标签里面返回,由于返回的不是JSON数据,就没有跨域的限制了,类似对页面添加的js引用,这样就解决了跨域的问题。但需要在服务端拼接结构,违背了restful的原则。

  • 璺ㄥ煙鐨勪笁绉嶈В鍐虫柟妗
    绛旓細濡備綍瑙e喅璺ㄥ煙鐨勯棶棰樼殑鍛紝 鏈変互涓嬩笁绉嶆柟妗 1锛浠g悊鐨勬柟妗锛屽皢璇锋眰璧勬簮鐨勬搷浣滈氳繃涓灞備唬鐞嗭紝鐒跺悗鍙栧洖鏁版嵁锛屽啀浠庝唬鐞嗗眰鎶婃暟鎹繑缁欐祻瑙堝櫒锛岀敱浜庝唬鐞嗗眰鍜屾祻瑙堝櫒鏄悓婧愮殑锛岃繖鏍峰氨瑙e喅浜嗚法鍩熺殑闂锛堥氬父璇曠敤浜巒ode灞傦級2锛屾斁寮鏈嶅姟绔法鍩熼檺鍒讹紝閫氳繃娣诲姞response鐨刪eader鐨勬柟娉曪紙鍙傝僪eader('Access-Control-Allow-...
  • 浠涔堟槸璺ㄥ煙璇锋眰鍙婂浣曞疄鐜
    绛旓細鍦ㄦ祻瑙堝櫒鐨勪笘鐣屼腑锛屽悓婧愮瓥鐣ユ槸瀹堟姢鐢ㄦ埛闅愮鐨勫崼澹紝瀹冮檺鍒朵簡涓嶅悓婧愪箣闂寸殑鏁版嵁浜ゆ祦銆傞亣鍒拌法鍩熼棶棰樻椂锛鎴戜滑鏈変笁绉嶄富瑕佺殑瑙e喅鏂规锛欽SONP銆丆ORS鍜學ebSocket銆侸SONP锛氬阀鐢
  • 浣跨敤CORS瑙e喅璺ㄥ煙闂
    绛旓細锛1) 璇锋眰鏂规硶鏄互涓嬩笁绉嶆柟娉曚箣涓锛氾紙2锛塇TTP鐨勫ご淇℃伅涓嶈秴鍑轰互涓嬪嚑绉嶅瓧娈碉細褰撴祻瑙堝櫒鍙戠幇鍙戠幇鐨刟jax璇锋眰鏄畝鍗曡姹傛椂锛屼細鍦ㄨ姹傚ご涓惡甯︿竴涓瓧娈碉細 Origin .Origin涓細鎸囧嚭褰撳墠璇锋眰灞炰簬鍝釜鍩燂紙鍗忚+鍩熷悕+绔彛锛夈傛湇鍔′細鏍规嵁杩欎釜鍊煎喅瀹氭槸鍚﹀厑璁稿叾璺ㄥ煙銆傚鏋滄湇鍔″櫒鍏佽璺ㄥ煙锛岄渶瑕佸湪杩斿洖鐨勫搷搴斿ご涓惡甯︿笅闈俊...
  • 璺ㄥ煙闂鐨勪節绉瑙e喅鏂规硶
    绛旓細4. Websocket鍗忚 閫氳繃WebSocket锛屾祻瑙堝櫒涓庢湇鍔″櫒鍙互瀹炵幇鍏ㄥ弻宸ラ氫俊锛岃法鍩熼棶棰樺悓鏍峰緱鍒拌В鍐炽5. 鏈嶅姟鍣ㄤ唬鐞 - Node.js浣滀负涓棿浠朵唬鐞 - Nginx鍙嶅悜浠g悊 杩欎簺鍚庣鎵嬫鑳藉府鍔╁湪鏈嶅姟鍣ㄥ眰闈㈠鐞嗚法鍩熻姹傦紝杞彂璧勬簮鍒扮洰鏍囧煙銆6. iframe閰嶅悎绛栫暐 iframe涔熸湁涓夌宸у鐨勮法鍩熷簲鐢ㄦ柟寮忥細iframe + document.domain...
  • 鍚庣涓嶆敮鎸璺ㄥ煙 鍓嶇瑕佽法鍩熸庝箞鍔
    绛旓細瑙e喅鍓嶇璺ㄥ煙鏂规硶鎬荤粨 绗竴绉嶏細document.domain + iframe (鍙湁鍦ㄤ富鍩熺浉鍚岀殑鏃跺欐墠鑳戒娇鐢ㄨ鏂规硶)锛涚浜岀锛鍔ㄦ佸垱寤簊cript锛屽洜涓簊cript鏍囩涓嶅彈鍚屾簮绛栫暐鐨勯檺鍒銆傜涓夌锛氬師鐞嗘槸鍒╃敤location.hash鏉ヨ繘琛屼紶鍊笺傚亣璁惧煙鍚峚.com涓嬬殑鏂囦欢cs1.html瑕佸拰cnblogs.com鍩熷悕涓嬬殑cs2.html浼犻掍俊鎭1) cs1.html棣栧厛...
  • 濡備綍鍏佽璺ㄥ煙
    绛旓細璺ㄥ煙鏈変笁绉嶈В鍐鍔炴硶锛屼袱绉嶆槸闇瑕佸悗鍙板鐞嗙殑锛屼竴涓墠绔氨鑳藉鐞嗙殑銆傝鍚庡彴鍦ㄦ帴鍙f枃浠剁殑璇锋眰澶撮噷鍔犱笂鈥淎ccess-Control-Allow-Origin銆傗濆弽鍚戜唬鐞嗐傝繖鐜╂剰涔熸槸鍚庡彴澶勭悊鐨勩俲sonp锛岃繖涓氨鏄墠绔鐞嗙殑浜嗭紝鍒╃敤src杩欎釜灞炴э紝src鏄彲浠ヨ法鍩熺殑锛宨frame涓殑src锛屽埄鐢╥frame鑾峰彇鍒板唴瀹瑰悗鍐嶇敤js澶勭悊锛屾垨鑰呭姩鎬佸垱寤簊cript...
  • 濡備綍瑙e喅璺ㄥ煙闂
    绛旓細涔熸槸涓笉閿欑殑瑙e喅鎬濊矾銆傜鍥涚鍦烘櫙锛岀浉搴旂殑澶勭悊鍔炴硶闈炲父寮哄ぇ锛屽姣擜jax鍙互鐪嬪埌锛璺ㄥ煙鍚嶆病闂锛屾棤鍒锋柊娌¢棶棰橈紝鏈韩鍙堟槸寮傛鐨勶紝JSON姣攛ml蹇殑澶氾紝鍚屾椂瑙e喅涔辩爜闂锛屽彧鏄姹傞兘鏄疓et鏂瑰紡鐨勶紝涓嶈兘鍋歅ost鏂瑰紡鐨勮姹傘傚涓绉嶆鍣ㄨ嚜鐒跺彲浠ヤ粠瀹归夋嫨浜嗐傦紙杞笘璇锋敞鏄庡嚭澶勶細http://blog.csdn.net/lenel锛
  • javascript 璺ㄥ煙璋冪敤js鏂囦欢闂...
    绛旓細jquery涓jsonp鐨勬敮鎸佷篃鏄熀浜庢鏂规 3.鍚庡彴浠g悊鏂瑰紡 杩欑鏂瑰紡鍙互瑙e喅鎵鏈璺ㄥ煙闂锛屼篃灏辨槸灏嗗悗鍙颁綔涓轰唬鐞嗭紝姣忔瀵瑰叾瀹鍩熺殑璇锋眰杞氦缁欐湰鍩熺殑鍚庡彴锛屾湰鍩熺殑鍚庡彴閫氳繃妯℃嫙http璇锋眰鍘昏闂叾瀹冨煙锛屽啀灏嗚繑鍥炵殑缁撴灉杩斿洖缁欏墠鍙帮紝杩欐牱鍋氱殑濂藉鏄紝鏃犺璁块棶鐨勬槸鏂囨。锛岃繕鏄痡s鏂囦欢閮藉彲浠ュ疄鐜拌法鍩 ...
  • 鎬庝箞鍒╃敤ajax寮傛璇锋眰璋冪敤鏈嶅姟鍣ㄤ笂鐨刪tml闈欐侀〉闈?
    绛旓細璺ㄥ煙涓鑸儏鍐典笅鏈変笁绉嶈В鍐鏂规硶銆傜涓绉嶅氨鏄共鎺変骇鐢璺ㄥ煙鐨婧愬ご鈥斺旀祻瑙堝櫒锛屼慨鏀规祻瑙堝櫒鐨勮缃氨鍙互浜嗭紝杩欎釜涓嶅缓璁傜浜岀锛屾槸鐢熶骇鐜涓嬫渶甯哥敤鐨勶紝灏辨槸鐢ㄦ湇鍔″櫒璁剧疆瑙e喅銆備綘璇锋眰鑷繁鐨勬湇鍔″櫒锛岃鑷繁鐨勬湇鍔″櫒鍘昏姹傚埆鐨勬湇鍔″櫒涓婄殑璧勬簮锛屽氨瑙勯伩浜嗚法鍩熼棶棰樸傜幇鍦ㄤ笉鐭ラ亾浣犺兘鐢ㄨ繖绉嶆柟寮忎笉銆傜涓夌锛屽氨鏄...
  • Ajax璺ㄥ煙璇锋眰濡備綍浣跨敤
    绛旓細杩欐牱鍙嶅弽澶嶅鏀规潵鏀瑰幓濂戒箙閮芥病鑳借В鍐筹紝浜庢槸姹傛晳鍚屼簨锛屾彁閱掑彲鑳芥槸ajax璺ㄥ煙闂 棰橈紝浜庢槸灏卞皢杩欎釜闂褰撳仛璺ㄥ煙闂鏉ヨВ鍐充簡銆傜煡璺ㄥ煙鑰屼笉鐭ュ浣曡В鍐崇煡閬撻棶棰樼殑纭垏鍘熷洜锛屽墿涓嬬殑灏辨槸鎵惧埌瑙e喅闂鐨勬柟娉曚簡銆俫oogle浜嗗ソ涔咃紝鍐嶆鍦ㄥ悓浜嬬殑鎸囩偣涓嬬煡閬搄Query鐨刟jax鏈塲sonp杩欐牱鐨勫睘鎬у彲浠ョ敤鏉瑙e喅璺ㄥ煙鐨闂銆傛壘鍒颁竴绉嶈В鍐...
  • 扩展阅读:前端vue解决跨域的方法 ... ajax跨域解决方案 ... 跨域原因和解决方案 ... 前端如何解决跨域问题 ... 浏览器解决跨域问题 ... vue解决跨域的三种方法 ... 前端ajax跨域解决方案 ... 跨域解决方案springboot ... 前端解决跨域问题三种方法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网