Andrew,
Here is a link to the proxy resources that you will need to setup on your web server:
GitHub - Esri/resource-proxy: Proxy files for DotNet, Java and PHP.
WAB doc on proxy:
Use proxy—Web AppBuilder for ArcGIS | ArcGIS
Blog post on the subject:
Setting up a proxy with Web AppBuilder Developer Edition | Support Services Blog
As far as the code (it looks like you are on 2.0 and my code example was for 2.1. Here is 2.0:
_getPrintTaskInfo: function() {
// portal own print url: portalname/arcgis/sharing/tools/newPrint
var def = new Deferred();
if (this._isNewPrintUrl) { // portal own print url
def.resolve({
isGPPrint: false
});
} else {
esriRequest({
url: this.printTaskURL,
content: {
f: "json"
},
callbackParamName: "callback",
handleAs: "json",
timeout: 60000
},{useProxy: true, usePost: false}).then(lang.hitch(this, function(data) {
def.resolve({
isGPPrint: true,
data: data
});
},{useProxy: true, usePost: false}), lang.hitch(this, function(err) {
def.resolve({
error: err
});
})
);
}
return def;
},