cf974b7c50fe1b9f149a88d2e9318dc8b4d7ea7e larrym Tue Oct 18 16:24:11 2011 -0700 tweaks to POST code in setCartVars diff --git src/hg/js/ajax.js src/hg/js/ajax.js index 5e79da5..89ff128 100644 --- src/hg/js/ajax.js +++ src/hg/js/ajax.js @@ -164,32 +164,40 @@ if(loc.indexOf("?") > -1) { loc = loc.substring(0, loc.indexOf("?")); } if(loc.lastIndexOf("/") > -1) { loc = loc.substring(0, loc.lastIndexOf("/")); } loc = loc + "/cartDump"; var hgsid = getHgsid(); var data = "submit=1&noDisplay=1&hgsid=" + hgsid; var track = getTrack(); if(track && track.length > 0) data = data + "&g=" + track; for(var ix=0; ix<names.length; ix++) { data = data + "&" + encodeURIComponent(names[ix]) + "=" + encodeURIComponent(values[ix]); } + var type; + // We prefer GETs so we can analyze logs, but use POSTs if data is longer than a (conservatively small) + // maximum length to avoid problems on older versions of IE. + if((loc.length + data.length) > 2000) { + type = "POST"; + } else { + type = "GET"; + } $.ajax({ - type: "POST", + type: type, url: loc, data: data, trueSuccess: function () {}, success: catchErrorOrDispatch, error: errorHandler, cache: false }); } function setCartVar(name, value) { // Asynchronously set a cart variable. setCartVars( [ name ], [ value ] ); }