stricter city param handling in API mode. This isn't actually the right fix, but it's good enough for now.
display errors in javascript or json instead of html