Pasar una matriz de cadenas a webmethod con una cantidad variable de argumentos usando jQuery AJAX

Estoy tratando de pasar una matriz de parámetros de cadena a un servicio web C # ASP.NET usando jQuery Ajax. Aquí está mi método web de muestra. Tenga en cuenta que la función acepta una cantidad variable de parámetros. Obtengo un Error interno de 500 servidores en la consola de JavaScript de Chrome cuando ejecuto el jquery. Estoy usando jquery 1.6.2 y .NET3.5

[WebMethod] public string Concat(params string[] arr) { string result = ""; for (int i = 0; i < arr.Length; i++) { result += arr[i]; } return result; } 

Aquí está el jquery:

 $(document).ready(function() { var myCars=new Array(); myCars[0]="Saab"; myCars[1]="Volvo"; myCars[2]="BMW"; $.ajax({ type: "POST", url: "WebService.asmx/Concat", data: {arr: myCars}, //can't figure out what to put here success: onSuccess, Error: onError }); }); function onSuccess() { alert("testing"); } function onError() { alert("fail"); }  

¡Cualquier ayuda es apreciada!

Código revisado del lado del servidor:

 [WebMethod] public string Concat(List arr) { string result = ""; for (int i = 0; i < arr.Count; i++) { result += arr[i]; } return result; } 

Además, agregue esto arriba de su statement de clase de WebService :

 [System.Web.Script.Services.ScriptService] 

Código revisado del lado del cliente:

  $(document).ready(function () { var myCars = new Array(); myCars[0] = "Saab"; myCars[1] = "Volvo"; myCars[2] = "BMW"; $.ajax({ type: "POST", url: "WebService.asmx/Concat", data: JSON.stringify({ arr: myCars }), contentType: "application/json; charset=utf-8", dataType: "json", success: onSuccess, failure: onError }); }); function onSuccess(response) { alert(response.d); } function onError() { alert("fail"); } 

Además, agregue encima de ese bloque de secuencia de comandos una referencia a JSON2, como por ejemplo:

  

Notas:

  • He probado esto bajo .NET 4 y usando jQuery 1.6.4.
  • Asegúrese de mantener los nombres de las variables del cliente y servidor sincronizados:
    public string Concat(List arr )
    data: JSON.stringify({ arr : myCars })