ข้ามโดเมน
ทรัพยากรเริ่มต้นการร้องขอ HTTP ข้ามไซต์เมื่อการร้องขอทรัพยากรเป็นชื่อโดเมนที่แตกต่างจากทรัพยากรแรกที่มีให้
ตัวอย่างเช่นเว็บแอปพลิเคชันที่มีชื่อโดเมน (http://domainb.foo) แนะนำทรัพยากรรูปภาพบางอย่าง (http://domainb.foo/image.jpg) ของเว็บไซต์ชื่อโดเมน B (http://domainb.foo/image.jpg) ผ่านแท็ก เว็บแอปพลิเคชันที่มีชื่อโดเมน A จะทำให้เบราว์เซอร์เริ่มต้นคำขอ HTTP ข้ามไซต์ ในการพัฒนาเว็บในปัจจุบันการใช้คำขอ HTTP ข้ามไซต์เพื่อโหลดทรัพยากรต่าง ๆ (รวมถึง CSS รูปภาพสคริปต์ JavaScript และทรัพยากรอื่น ๆ ) ได้กลายเป็นวิธีที่พบได้ทั่วไปและเป็นที่นิยม
อย่างที่คุณทราบด้วยเหตุผลด้านความปลอดภัยเบราว์เซอร์ จำกัด คำขอข้ามไซต์ที่เริ่มต้นในสคริปต์ ตัวอย่างเช่นในการเริ่มต้นคำขอ HTTP โดยใช้วัตถุ XMLHTTPREQUEST คุณต้องปฏิบัติตามนโยบายต้นกำเนิดเดียวกัน โดยเฉพาะเว็บแอปพลิเคชันสามารถและสามารถใช้วัตถุ XMLHTTPREQUEST เพื่อเริ่มต้นคำขอ HTTP ไปยังชื่อโดเมนต้นทางที่โหลดและไม่สามารถเริ่มคำขอไปยังชื่อโดเมนอื่น ๆ ได้ เพื่อที่จะพัฒนาแอพพลิเคชั่นเว็บที่ทรงพลังยิ่งขึ้นและปลอดภัยยิ่งขึ้นนักพัฒนามีความกระตือรือร้นที่จะมีประสิทธิภาพและสมบูรณ์ยิ่งขึ้นโดยไม่สูญเสียความปลอดภัย ตัวอย่างเช่นคุณสามารถใช้ XMLHTTPREQUEST เพื่อเริ่มต้นคำขอ HTTP ข้ามไซต์ (คำอธิบายของการข้ามโดเมนนี้ไม่ถูกต้อง Cross-domain ไม่ใช่ว่าเบราว์เซอร์ จำกัด คำขอข้ามโดเมน แต่คำขอข้ามโดเมนสามารถเริ่มต้นได้ตามปกติ แต่ผลลัพธ์คือการดักจับโดยเบราว์เซอร์ตัวอย่างที่ดีที่สุดคือหลักการของ CSRF หรือไม่ โดเมน HTTPS เช่น Chrome และ Firefox
เพิ่มเติม: https://developer.mozilla.org/zh-cn/docs/web/http/access_control_cors
ลูกครึ่ง
CORS คือการแบ่งปันทรัพยากรข้ามต้นกำเนิดชื่อ เซิร์ฟเวอร์จำเป็นต้องเพิ่มข้อมูลส่วนหัวการตอบกลับที่เกี่ยวข้องเพื่อให้ไคลเอนต์ออกคำขอ AJAX Cross-Domain
@crossorigin
1. ใช้คำขอทั้งหมดบนคอนโทรลเลอร์โดยตรงอาจเป็นข้ามโดเมน, Origins = "*" หมายความว่าสามารถร้องขอคำขอทั้งหมดได้
@crossorigin (Origins = "http://domain2.com", maxage = 3600)@restcontroller@requestmapping ("/account") บัญชีสาธารณะบัญชีสาธารณะ {@requestmapping ("/{id}") การเรียกคืนบัญชีสาธารณะ "/{id}") โมฆะสาธารณะลบ (@PathVariable Long ID) {// ... }} 2. ใช้ในวิธีการ
@crossorigin (maxage = 3600) @restcontroller @requestmapping ("/account") คลาสสาธารณะบัญชี concontroller {@crossorigin ("http://domain2.com") @requestmapping ("/{id}") "/{id}") โมฆะสาธารณะลบ (@PathVariable Long ID) {// ... }}อีกวิธีหนึ่ง:
วัตถุประสงค์หลักของ Corsfilter คือการเพิ่มส่วนหัวข้อมูลที่เกี่ยวข้องซึ่งสามารถทำได้โดยใช้ตัวกรอง
@ConfigurationPublic คลาส beanconfiguration {@bean สาธารณะ corsfilter corsfilter () {ขั้นสุดท้าย urlbasedcorsconfigurationsource urlbasedcorsconfigurationsource = ใหม่ urlbasedcorsconfigurationsource ();); corsconfiguration สุดท้าย corsconfiguration = new corsconfiguration (); Corsconfiguration.setallowedCredentials (จริง); Corsconfiguration.addallowedorigin ("*"); Corsconfiguration.addallowedheader ("*"); Corsconfiguration.addallowedMethod ("*"); urlbasedcorsconfigurationsource.registercorsconfiguration ("/**", corsconfiguration); ส่งคืน Corsfilter ใหม่ (urlbasedcorsconfigurationsource); -Access-Control-Olow-Origin: ชื่อโดเมนไคลเอนต์ที่ได้รับอนุญาตให้เข้าถึงตัวอย่างเช่น http://web.xxx.com หาก *หมายความว่าสามารถเข้าถึงได้จากโดเมนใด ๆ นั่นคือไม่จำเป็นต้องมีข้อ จำกัด
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น