Tôi thấy nhiều vấn đề về chủ đề này, nhưng không bao giờ gặp vấn đề này. Tôi có thể gọi dịch vụ web này từ cửa sổ trình duyệt, nhưng tôi nhận được lỗi từ AJAX. Tôi nhận được ngoại lệ lỗi máy chủ nội bộ (500). Nó có thể phải làm một cái gì đó với URL của tôi trong JQuery, kể từ khi Im kết nối từ localhost. Dưới đây là (một phiên bản đơn giản) của WS của tôi:JQuery - Dịch vụ web ASP.NET (.asmx) - lỗi máy chủ nội bộ (500)
<System.Web.Script.Services.ScriptService()> _
<WebService(Namespace:="http://tempuri.org/webdienst/_default")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class _default
Inherits System.Web.Services.WebService
<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.JSON)> _
Public Function getOrganizerEventsJSON(ByVal strUser As String, ByVal strPasswort As String) As TEvent
Dim t As TEvent
'I get the event for the specified username and password
Return t
End Function
End Class
Và đây là JS của tôi:
var ASMX = "http://localhost:56035/default.asmx/";
jQuery.callAsmx = function (method, data, onSuccess, onError) {
var url = ASMX + method;
return $.ajax({
type: "POST",
url: url,
data: $.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
if (typeof onSuccess == "function") {
onSuccess(response.d);
}
},
error: function (msg) {
if (msg.status != 0) {
if (typeof onGlobalError == "function") {
onGlobalError([msg],
"Error while calling " + url, ERRORTYPE.error);
}
if (typeof onError == "function") {
onError(msg);
}
}
}
});
};
$.callAsmx("GetOrganizerEventsJSON", { strUser: username, strPasswort: password }, onEventsLoaded);
Cảm ơn bạn!
Hãy thử với 'từ khóa static' 'Chức năng tĩnh công cộng (...)'. –
@DKM Không có ... Không có chức năng tĩnh nào được phép cho các lớp Dịch vụ Web. – lucafik
Nếu bạn gặp lỗi '500', tôi đoán vấn đề ở phía máy chủ của bạn. – anmarti