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 ] );
 }