Two things here:
1. There are cases were there is both content (i.e. query args) and putData e.g. when updating a community. If we are doing a put of post I think we need include the content into the url.
2. if there is no put or post data then xhrData should be null rather than ""