The web service successfully gets called if data: {} (no parameters) are passed.

But if I try to pass a parameter, an error occurs.
The Code Behind doesn't seem to like the parameter passing.

What am I doing wrong when passing the parameter?
I have tried:
//"{'fname':'dave'}" << doesnt work
//"{fname:dave}" << doesnt work
and actually a few others that I am too embarrassed to print.


$.ajax({
type: "POST",
url: "wsLkup2_Load.asmx/Lkup2_Load",
data: {fname:dave}, << Error with ANY parameter. Works if just {} (no parameters)
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
alert(result.d);
},
error: function(req, status, error) {
alert('asdfasdf ERROR');
}
});

CODE BEHIND
===========

Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
<System.Web.Script.Services.ScriptService()> _
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
Public Class wsLkup2_Load
Inherits System.Web.Services.WebService

<WebMethod()> _
Public Function Lkup2_Load(ByVal p_s_UsrID As String) As String
' if the parameter is removed, the web service is successfully called.
Return "Hello World"
End Function

End Class