J’essaie de transmettre un tableau de parameters de chaîne à un service Web C # ASP.NET à l’aide de jQuery Ajax. Voici mon exemple de méthode Web. Notez que la fonction accepte un nombre variable de parameters. J’obtiens une erreur de 500 serveur interne dans la console JavaScript de Chrome lorsque j’exécute jquery. J’utilise jquery 1.6.2 et .NET3.5
[WebMethod] public ssortingng Concat(params ssortingng[] arr) { ssortingng result = ""; for (int i = 0; i < arr.Length; i++) { result += arr[i]; } return result; }
Voici le 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"); }
Toute aide est appréciée!
Code côté serveur révisé:
[WebMethod] public ssortingng Concat(List arr) { ssortingng result = ""; for (int i = 0; i < arr.Count; i++) { result += arr[i]; } return result; }
Ajoutez également ceci au-dessus de votre déclaration de classe WebService
:
[System.Web.Script.Services.ScriptService]
Code client révisé:
$(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.ssortingngify({ arr: myCars }), contentType: "application/json; charset=utf-8", dataType: "json", success: onSuccess, failure: onError }); }); function onSuccess(response) { alert(response.d); } function onError() { alert("fail"); }
Ajoutez également au-dessus de ce script une référence à JSON2, telle que:
Remarques:
public ssortingng Concat(List arr )
data: JSON.ssortingngify({ arr : myCars })