Bu doğrudan bir cevap değil, biraz farklı bir tasarım yönü:
Verileri form olarak değil, doğrudan sunucu tarafı nesnesiyle eşlenecek bir JSON nesnesi olarak gönderin veya REST stili yol değişkenini kullanın
Bir XSRF anahtarını geçmeye çalıştığınız için artık her iki seçeneğin de sizin durumunuzda uygun olmadığını biliyorum. Böyle bir yol değişkenine eşlemek korkunç bir tasarımdır:
http://www.someexample.com/xsrf/{xsrfKey}
Çünkü doğası gereği, xsrf anahtarını başka bir yola /login
, /book-appointment
vb. De geçirmek istersiniz ve güzel URL'nizi karıştırmak istemezsiniz.
Bir nesne alanı olarak ilginç bir şekilde eklemek de uygun değil, çünkü şimdi sunucuya geçirdiğiniz json nesnesinin her birinde alanı eklemeniz gerekiyor
{
appointmentId : 23,
name : 'Joe Citizen',
xsrf : '...'
}
Kesinlikle, sunucu tarafı sınıfınıza etki alanı nesnesiyle doğrudan anlamsal bir ilişkisi olmayan başka bir alan eklemek istemezsiniz.
Bence xsrf anahtarınızı iletmenin en iyi yolu bir HTTP üstbilgisidir. Birçok xsrf koruması sunucu tarafı web çerçevesi kitaplığı bunu desteklemektedir. Örneğin Java Spring'de X-CSRF-TOKEN
üstbilgiyi kullanarak iletebilirsiniz .
Angular'ın JS nesnesini UI nesnesine mükemmel bir şekilde bağlayabilme özelliği, formun birlikte gönderilmesi ve bunun yerine JSON'un gönderilmesi uygulamasından kurtulabileceğimiz anlamına gelir. JSON, sunucu tarafındaki nesneye kolayca serileştirilebilir ve harita, diziler, iç içe nesneler gibi karmaşık veri yapılarını destekleyebilir.
Diziyi bir form yükünde nasıl gönderiyorsunuz? Belki şöyle:
shopLocation=downtown&daysOpen=Monday&daysOpen=Tuesday&daysOpen=Wednesday
veya bu:
shopLocation=downtwon&daysOpen=Monday,Tuesday,Wednesday
Her ikisi de kötü tasarım.