I know this is an old thread, so apologies, but I ran into a similar issue. I had a simple ajax calculator that serialised the data on the form and round-tripped a response to a textbox. I kept getting an Internal Error 500. The reason for this as far as I could tell was that it was on an UPDATE form with a PUT method. When I inspected the serialized data, sure enough there was a "_method" field with "PUT" as its value. I then sent then data as field:value pairs instead (without the _method field) - and it worked fine. Hope it helps somebody.