diff --git a/planetstack/core/plus/views.py b/planetstack/core/plus/views.py
index 4dcca79..2b7bf38 100644
--- a/planetstack/core/plus/views.py
+++ b/planetstack/core/plus/views.py
@@ -699,6 +699,9 @@
         siteList = [Site.objects.get(name=siteName)]
         slice = Slice.objects.get(name="HyperCache")
 
+        if request.user.isReadOnlyUser():
+            return HttpResponseForbidden("User is in read-only mode")
+
         if (actionToDo == "add"):
             user_ip = request.GET.get("ip", get_ip(request))
             slice_increase_slivers(request.user, user_ip, siteList, slice, 1)
@@ -707,7 +710,7 @@
 
         print '*' * 50
         print 'Ask for site: ' + siteName + ' to ' + actionToDo + ' another HPC Sliver'
-        return HttpResponse('This is POST request ')
+        return HttpResponse(json.dumps("Success"), mimetype='application/javascript')
 
 class DashboardAjaxView(View):
     def get(self, request, **kwargs):
diff --git a/planetstack/templates/admin/dashboard/cdnoperations.html b/planetstack/templates/admin/dashboard/cdnoperations.html
index 31ff746..167b558 100644
--- a/planetstack/templates/admin/dashboard/cdnoperations.html
+++ b/planetstack/templates/admin/dashboard/cdnoperations.html
@@ -96,16 +96,12 @@
                csrfmiddlewaretoken: "{{ csrf_token }}",   // < here
                state:"inactive" },
         type : 'POST',
-        //success: function(response)
-        //{
-         //   alert("Successfully posted request to REMOVE sliver");
-        //},
-        complete:function(){
+        success:function(){
             confirmDialog("Info","Removed an HPC Sliver from Site ");
         },
-        //error:function (xhr, textStatus, thrownError){
-         //   alert("Could not request to remove HPC Sliver");
-        //}
+        error:function (xhr, textStatus, thrownError){
+            errorDialog("Error", textStatus + " " + xhr.responseText);
+        }
     });
 });
 
@@ -121,17 +117,12 @@
         type : 'POST',
         success: function(response)
         {
-            //alert("Successfully posted request to add sliver");
-        },
-        complete:function()
-        {
             confirmDialog("Info","Added an HPC Sliver to Site ");
         },
-        //error:function (xhr, textStatus, thrownError){
-         //   alert("error doing something");
-        //}
+        error:function (xhr, textStatus, thrownError){
+            errorDialog("Error", textStatus + " " + xhr.responseText);
+        }
     });
-  //  confirmDialog("Add HPC Slivers","Add some HPC Slivers to site " + $(this).data('site'));
 });
 
 function getIcon(numNodes, numHPCSlivers, currentBW, hot) {
