이것은 직접적인 대답이 아니라 약간 다른 디자인 방향입니다.
데이터를 양식으로 게시하지 말고 서버 측 오브젝트에 직접 맵핑 할 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
header를 사용하여 전달할 수 있습니다 .
JS 객체를 UI 객체에 바인딩하는 Angular의 뛰어난 기능은 양식을 모두 게시하고 JSON을 게시하는 연습을 제거 할 수 있음을 의미합니다. JSON은 서버 측 객체로 쉽게 역 직렬화 될 수 있으며 맵, 배열, 중첩 된 객체 등과 같은 복잡한 데이터 구조를 지원할 수 있습니다.
폼 페이로드로 배열을 어떻게 게시합니까? 아마도 이런 식으로 :
shopLocation=downtown&daysOpen=Monday&daysOpen=Tuesday&daysOpen=Wednesday
아니면 이거:
shopLocation=downtwon&daysOpen=Monday,Tuesday,Wednesday
둘 다 나쁜 디자인입니다 ..