Personally, I prefer using headers for CSRF tokens, so as to be as
unobtrusive as possible with the request bodies. Actually, I believe
setting a header to any custom value creates a request that can not be
reproduced x-domain, so merely verifying a Content-Type of
application/json-rpc should provide CSRF protection (I think anyway).
Also, I think we have briefly discussed on this list that the most
correct media type to use for JSON-RPC would actually be
application/rpc+json (this is the normal media type for sub-media types
of a grammar like JSON or XML).
Kris