前端工程师必备:CORS、JSONP与代理服务器实战指南
日期:2025-05-27 19:59:12 •原创
馃涓轰粈涔堜綘鐨勫墠绔竴璋冩帴鍙e氨鎶ラ敊锛熸瘡娆$湅鍒版帶鍒跺彴椋樼孩鐨?CORS閿欒"鏄笉鏄兂鐮搁敭鐩橈紵鍒厡锛佷粖澶╁挶浠敤澶х櫧璇濊亰鑱婅法鍩熶笁鍓戝锛屼繚浣犲崐灏忔椂浠庢嚨閫煎埌绮鹃€氾紒
涓€銆佽法鍩熷埌搴曟槸涓暐鐜╂剰锛?/h3>
璇寸櫧浜嗗氨鏄祻瑙堝櫒鍦?鎶ょ妸瀛?锛佷綘瀹剁殑缃戦〉鍦?code>http://a.com锛岄潪瑕佽皟鐢?code>http://b.com鐨勬帴鍙o紝娴忚鍣ㄧ珛椹烦鍑烘潵锛?鍏勫紵锛屼綘杩欐簮閮戒笉涓€鑷达紝涓囦竴鏄挀楸肩綉绔欏拫鏁达紵" 鐩存帴缁欎綘鎶婅姹傛帎浜嗐€?/p>
馃攳鍚屾簮绛栫暐涓夋澘鏂?/h4>
- 鈥?strong>鈥嬪崗璁笉鍚屸€?/strong>鈥嬶細http vs https
- 鈥?strong>鈥嬪煙鍚嶄笉鍚屸€?/strong>鈥嬶細a.com vs b.com
- 鈥?strong>鈥嬬鍙d笉鍚屸€?/strong>鈥嬶細8080 vs 3000
涓句釜鏍楀瓙馃尠锛氫綘鏈湴寮€鍙戠敤localhost:5173
璋?code>localhost:8080鐨勬帴鍙o紝绔彛涓嶄竴鏍凤紵璺ㄥ煙娌¤窇锛?/p>
浜屻€丆ORS锛氱幇浠e紑鍙戠殑瀹樻柟瑙e喅鏂规
馃殌涓夋鎼炲畾CORS閰嶇疆
- 鈥?strong>鈥嬪悗绔姞鍝嶅簲澶粹€?/strong>鈥嬶紙浠ode.js涓轰緥锛夛細
javascript澶嶅埗app.use((req, res, next) => { res.header("Access-Control-Allow-Origin", "http://your-frontend.com") res.header("Access-Control-Allow-Methods", "GET,POST") res.header("Access-Control-Allow-Headers", "Content-Type") next() })
- 鈥?strong>鈥嬪甫cookie瑕佸姞鏂欌€?/strong>鈥嬶細
javascript澶嶅埗// 鍓嶇 fetch(url, { credentials: 'include' }) // 鍚庣 res.header("Access-Control-Allow-Credentials", "true")
- 鈥?strong>鈥嬮妫€璇锋眰鍒炕杞︹€?/strong>鈥嬶細閬囧埌PUT/DELETE杩欎簺"闈炲父瑙?鏂规硶锛屾祻瑙堝櫒浼氬厛鍙戜釜OPTIONS璇锋眰鎺㈣矾锛岃寰楀鐞嗭紒
鈿狅笍琛€娉暀璁細鍗冧竾鍒浘鐪佷簨鐩存帴璁?code>Access-Control-Allow-Origin: *杩樺甫Credentials
锛屽垎鍒嗛挓琚畨鍏ㄥ洟闃熻鍠濊尪
涓夈€丣SONP锛氭棫鏃朵唬鐨勬洸绾挎晳鍥?/h3>
铏界劧鐜板湪涓嶆帹鑽愶紝浣嗕繚涓嶉綈鍝ぉ瑕佹帴鍙よ懀绯荤粺鍛紵鍘熺悊楠氬緱寰堚€斺€旂敤
本文由嘻道妙招独家原创,未经允许,严禁转载