Validate Plugin - cant get post data to be json

Validate Plugin - cant get post data to be json

No matter what I have tried, I can not get the post from the remote validation rule to go across as JSON.

Setting contentType: 'application/json; charset=utf-8'  has absolutely no effect. The data still gets sent across in querystring/post data format. (EX: UserName=bdbedbdebs&domain=@userdomain) Then I get this error:
{"Message":"Invalid JSON primitive: UserName.","StackTrace":" 
at System.Web.Script.Serialization.JavaScriptObjectDeserializer
.DeserializePrimitiveObject()


The rest is omitted for clarity. I am able to get this to work with my own calls to ajax, just not the validator plugin. This has become very frustrating.
Here is my validator rule:
  1.                   UserName: {
  2.                         required: true,
  3.                         minlength: 2,
  4.                         regex: "^[a-zA-Z]{1}[w]{0,15}[.-_]?[w]{1,25}$",
  5.                         remote: {
  6.                             //url: '../Services/GeneralServices.asmx/IsUserNameAvailable',
  7.                             url: 'CreateUser.aspx/IsUserNameAvailable',
  8.                             type: 'POST',
  9.                             contentType: 'application/json; charset=utf-8',
  10.                             dataType: 'json',
  11.                             data: {
  12.                                 domain: function() {
  13.                                     if(typeof ($("#lblUserDomain").val()) !== 'undefined')
  14.                                         return $("#lblUserDomain").val();
  15.                                     else
  16.                                         return $("#ddlUserDomains :selected").text();
  17.                                 }
  18.                             }
  19.                         }
  20.                     }