Pozovite C# web servise iz JavaScripta i koristite ih (JSON format)
Kreirao sam C# web servis i pokušavam ga pozvati i koristiti iz JavaScript skripte, koji je način ili najbolji način za to, hvala unaprijed. Objasnit ću više: ovo je web servis:
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;
}
}
Testirao sam to, radi, kada sam isprobao predložena AJAX rješenja, dobio sam ovu pogrešku 500 Internal Server Error.
Odgovor #1
Pročitajte neke od tutorijala
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);
}
Odgovor #2
Trebaš napraviti AJAX zahtjev i čekati povratni poziv kako bi primio podatke.
Vrlo jednostavan primjer korištenja jQueryja:
$.ajax({
url: "/my_service.cs"
}).done(function(data) {
console.log("Received: ", data);
});
