Problem with jquery validation and form plugin ajaxSubmit(): Invalid JSON primitive

Problem with jquery validation and form plugin ajaxSubmit(): Invalid JSON primitive

Hi. I'm combining the jquery validation and the form plugin to use the ajaxSubmit() method. I'm using this to call a WebMethod in my ASPX page. I'm passing two parameters to my WebMethod, but the problem is that I always get the error "Invalid JSON primitive". After a lot of reviewing I've seen that the data is not being sent in JSON format, but as a querystring. Even worst, the data is being URLEncoded. Why is this? How do I make the form plugin to not convert the data into a querystring but to post it as JSON object? This is my code:

            $(document).ready(function () {
                //Validate form
                $("#frmLogin").validate({
                    errorClass: "errorBox",
                    onfocusout: false,
                    rules: { 
                        txtUsername: "required",
                        txtPassword: "required"
                    },
                    messages: { 
                        txtUsername: "Enter user.",
                        txtPassword: "Enter password." 
                    },
                    submitHandler: function (form) {
                        //Get form values
                        var strUsername = $("#txtUsername").val(),
                            strPassword = $("#txtPassword").val();

                        var params = {userName: strUsername, password: strPassword};

                        $(this).ajaxSubmit({
                            type: "POST",
                            url: "Default.aspx/Login",
                            data: $.toJSON(params),
                            contentType: "application/json; charset=utf-8",
                            dataType: "json",
                            success: function (data, textStatus, jqXHR) {
                                if (data.d) {
                                    alert("OK");
                                }
                                else {
                                    alert("NO");
                                }
                            },
                            error: function (jqXHR, textStatus, errorThrown) {
                                alert(jqXHR.responseText);;
                            },
                        });
                    }
                });
            });

and my WebMethod:

        [WebMethod, ScriptMethod]
        public static bool Login(string userName, string password)
        {
            return true;
        }

Any help is appreciated.

Thanks,