Volanie webových služieb C# z JavaScriptu a ich používanie (formát JSON)
Vytvoril som C# webovú službu a snažím sa ju zavolať a použiť z JavaScriptového skriptu, aký je spôsob alebo najlepší spôsob, ako to urobiť, vopred ďakujem. Vysvetlím viac: toto je webová služba:
public class DocumentInfo : System.Web.Services.WebService
{
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
public string GetDocumentInfo(string id)
{
Document document = new Document(Int32.Parse(id));
string output = JsonConvert.SerializeObject(document);
return output;
}
}
Otestoval som to, funguje to, keď som vyskúšal navrhované AJAX riešenia, dostal som túto chybu 500 Internal Server Error.
Odpoveď č. 1
Prečítajte si niektoré z tutoriálov
http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/ http://weblogs.asp.net/jalpeshpvadgama/archive/2010/08/29/calling-an-asp-net-web-service-from-jquery.aspx
function TestService()
{
try
{
$.ajax({
type: "POST",
url: "http://webserviceURL.asmx/YourWebMethodName",
data: "{'abc':'" + 123 + "'}", // if ur method take parameters
contentType: "application/json; charset=utf-8",
success: SuccessTestService,
dataType: "json",
failure: ajaxCallFailed
});
}
catch (e)
{
alert('failed to call web service. Error: ' + e);
}
}
function SuccessTestService(responce) {
alert(eval(responce.d));
}
function ajaxCallFailed(error) {
alert('error: ' + error);
}
Odpoveď č. 2
Musíte urobiť AJAX požiadavku a počkať na spätné volanie, aby ste dostali údaje.
Veľmi jednoduchý príklad použitia jQuery:
$.ajax({
url: "/my_service.cs"
}).done(function(data) {
console.log("Received: ", data);
});
