Ini bukan jawaban langsung, melainkan arah desain yang sedikit berbeda:
Jangan memposting data sebagai formulir, tetapi sebagai objek JSON yang akan langsung dipetakan ke objek sisi server, atau gunakan variabel jalur gaya REST
Sekarang saya tahu tidak ada pilihan yang cocok dalam kasus Anda karena Anda mencoba untuk melewati kunci XSRF. Memetakannya ke variabel path seperti ini adalah desain yang mengerikan:
http://www.someexample.com/xsrf/{xsrfKey}
Karena pada dasarnya Anda ingin meneruskan kunci xsrf ke jalur lain juga /login
,, /book-appointment
dll. Dan Anda tidak ingin mengacaukan URL cantik Anda
Menariknya menambahkannya sebagai bidang objek juga tidak tepat, karena sekarang pada setiap objek json yang Anda lewati ke server Anda harus menambahkan bidang tersebut
{
appointmentId : 23,
name : 'Joe Citizen',
xsrf : '...'
}
Anda tentu tidak ingin menambahkan bidang lain di kelas sisi server Anda yang tidak memiliki asosiasi semantik langsung dengan objek domain.
Menurut pendapat saya cara terbaik untuk melewatkan kunci xsrf Anda adalah melalui header HTTP. Banyak pustaka kerangka kerja web server sisi perlindungan xsrf mendukung ini. Misalnya di Java Spring, Anda bisa meneruskannya menggunakan X-CSRF-TOKEN
header .
Kemampuan Angular yang sangat baik untuk mengikat objek JS ke objek UI berarti kita dapat menyingkirkan praktik posting form bersama-sama, dan mengirim JSON sebagai gantinya. JSON dapat dengan mudah diderialisasi ke objek sisi server dan mendukung struktur data yang kompleks seperti peta, array, objek bersarang, dll.
Bagaimana cara Anda memposting array dalam bentuk muatan? Mungkin seperti ini:
shopLocation=downtown&daysOpen=Monday&daysOpen=Tuesday&daysOpen=Wednesday
atau ini:
shopLocation=downtwon&daysOpen=Monday,Tuesday,Wednesday
Keduanya desain yang buruk ..