+----------------------+ +-----------------------+ | User Browser | | WordPress Site | | (viewing from | CORS Error | (blog.com) | | example.com) | Browser enforces CORS | | | +------------+ | Direct request | +------------+ | | | Frontend |<-----------------------------------X | xmlrpc.php | | | | App | | example.com → blog.com | | | | | +------------+ | | +------------+ | +----------------------+ +-----------------------+ Browser security blocks cross-origin requests (CORS is browser-only!)
+----------------------+ +------------------------+ +-----------------------+ | User Browser | | App Server | | WordPress Site | | (viewing from | | (example.com) | | (blog.com) | | example.com) | | | | | | +------------+ | | +------------+ | | +------------+ | | | Frontend |<-------->| | Backend |<---------->| | xmlrpc.php | | | | App | | | | (Bottle) | | | | | | | +------------+ | | +------------+ | | +------------+ | +----------------------+ +------------------------+ +-----------------------+ Same origin Uses requests library Different origin Browser allows this No CORS checks here! (Server doesn't care (Not a browser!) about origin)
LLM's are surprisingly good at making diagrams in monospaced ascii or MermaidJS.