If you make a POST with $.ajax, and you don't stringify your data in advance, jQuery will change the names of any keys that have array values from "thatName" to "thatName". This behavior seems particularly strange to me, because jQuery normally takes great pains NOT to be opinionated (unless there is a standard involved, and there is no standard that I'm aware of which requires  key names for AJAX calls).
Now, I understand that $.ajax is pretty integral to the library, and the jQuery community is used to the current behavior, so this bug likely can't be fixed entirely. However, I do see two partial solutions:
1) Add another option to ajax to allow disabling of this behavior. Currently there is a "traditional" option, but using that option also disables serialization of nested objects. Since there is currently no way to tell jQuery "please do everything as you normally would EXCEPT don't modify my keys", an option that allows that would be really handy.
2) Add more documentation highlighting this "feature" to the $.ajax documentation page. Currently the text "" doesn't even appear on that documentation page, but if a message to the effect of:
"jQuery is strongly opinionated when it comes to posting arrays, and it will modify your key names from "originalName" to "originalName" unless you use the traditional option or the new ____ option (created in 1) above)."
If either one of those were implemented it would likely save people (like myself) a lot of time and confusion (and both would be even better).