OK, I wasn't setting the Accept header. Oops. But success always sends JSON, so weird failure would not.

//