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.
Creating a universal framework requires upfront work, but, it's a mechanism to distribute your library to the masses without making them work to use it.