%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% flowchart LR subgraph Era1["ยุค Same-Origin / Browser Security"] A["Same-Origin Policyกันเว็บอื่นอ่านข้อมูล"] end subgraph Era2["ยุค API แยก Domain / Cross-Origin API"] B["CORS Headersallow origin"] C["Preflight OPTIONSถามก่อน request จริง"] end subgraph Era3["ยุค Production Domains"] D["Credentialscookie ข้าม origin"] E["Strict Origin Listdomain จริงเท่านั้น"] end A --> B --> C --> D --> E
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% sequenceDiagram participant B as Browser / Angular participant A as API Server / Express B->>A: OPTIONS /api/users A-->>B: Access-Control-Allow-Origin B->>A: POST /api/users A-->>B: JSON Response