It is correct that the `dataType` isn't strictly necessary, as by default jQuery will attempt to infer the data type from the MIME type in the response. Specifying an explicit `dataType`, however, is marginally safer than leaving it to jQuery to figure out. Some versions of jQuery (I can't remember whether it's older versions or newer ones), on determining that the data type is a script, execute the script. If something hiccups in the server (or the client) and jQuery mistakenly interprets a preview page as a script, executing the "code" probably wouldn't be a good thing. Setting the `dataType` explicitly to `text` prevents jQuery from even attempting any interpretation, so there's no chance of getting it wrong. Admittedly the chances of this happening seem rather remote, so perhaps I'm just being paranoid.

As to the `success` property in the ajax object, I think jQuery has indicated that `done()` is the preferred approach. Although not precisely the same context, the jQuery [documentation](http://api.jquery.com/jQuery.getJSON/) does say:

> The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callback methods introduced in jQuery 1.5 are deprecated as of jQuery 1.8. To prepare your code for their eventual removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.