The problem with the CGI way is that the state of your application is bifurcated between client and server and exists in different places at different times
My Ajax calls were failing and I saw my application logs containing many requests with the HTTP verb "OPTIONS". I narrowed it to oddities with PDFs on Safari.
Nick Sutterer makes a great case for separating CRUD from REST, and also touches on the important interface constraints of the REST architectural style.