นี่ไม่ใช่คำตอบโดยตรง แต่เป็นทิศทางการออกแบบที่แตกต่างกันเล็กน้อย:
อย่าโพสต์ข้อมูลเป็นรูปแบบ แต่เป็นวัตถุ JSON ที่จะแมปโดยตรงกับวัตถุฝั่งเซิร์ฟเวอร์หรือใช้ตัวแปรเส้นทางสไตล์ REST
ตอนนี้ฉันรู้ว่าตัวเลือกไม่เหมาะสำหรับคุณเนื่องจากคุณพยายามส่งคีย์ XSRF การแม็พกับตัวแปรพา ธ แบบนี้เป็นการออกแบบที่แย่มาก:
http://www.someexample.com/xsrf/{xsrfKey}
เพราะโดยธรรมชาติที่คุณจะต้องการที่จะผ่านที่สำคัญ XSRF ไปยังเส้นทางอื่น ๆ ด้วย/login
,/book-appointment
ฯลฯ และคุณไม่ต้องการยุ่ง URL สวยของคุณ
การเพิ่มลงในฟิลด์วัตถุที่น่าสนใจก็ไม่เหมาะสมเช่นกันเพราะตอนนี้บนแต่ละวัตถุ json ที่คุณส่งไปยังเซิร์ฟเวอร์คุณต้องเพิ่มฟิลด์
{
appointmentId : 23,
name : 'Joe Citizen',
xsrf : '...'
}
แน่นอนคุณไม่ต้องการเพิ่มเขตข้อมูลอื่นในคลาสฝั่งเซิร์ฟเวอร์ของคุณซึ่งไม่มีการเชื่อมโยงความหมายโดยตรงกับวัตถุโดเมน
ในความคิดของฉันวิธีที่ดีที่สุดในการส่งคีย์ xsrf ของคุณคือผ่านส่วนหัว HTTP ไลบรารีเฟรมเวิร์กเว็บการป้องกันเซิร์ฟเวอร์ xsrf จำนวนมากสนับสนุนสิ่งนี้ ตัวอย่างเช่นใน Java Spring คุณสามารถส่งผ่านโดยใช้X-CSRF-TOKEN
ส่วนหัวส่วนหัว
ความสามารถที่ยอดเยี่ยมของ Angular ในการเชื่อมโยงวัตถุ JS ไปยังวัตถุ UI หมายความว่าเราสามารถกำจัดการฝึกการโพสต์ฟอร์มทั้งหมดเข้าด้วยกันและโพสต์ JSON แทน JSON สามารถถูกทำให้เป็นอนุกรมในวัตถุฝั่งเซิร์ฟเวอร์และสนับสนุนโครงสร้างข้อมูลที่ซับซ้อนเช่นแผนที่, อาร์เรย์, วัตถุที่ซ้อนกันและอื่น ๆ
คุณจะทำอย่างไรโพสต์อาร์เรย์ในบรรจุรูปแบบ? อาจจะเป็นเช่นนี้:
shopLocation=downtown&daysOpen=Monday&daysOpen=Tuesday&daysOpen=Wednesday
หรือสิ่งนี้:
shopLocation=downtwon&daysOpen=Monday,Tuesday,Wednesday
ทั้งมีการออกแบบที่น่าสงสาร ..