我正在尝试在 GetPlaform() javascript 函数中使用 ajax 调用 GetPlatformNames() webmethod。
但是,ajax 调用永远不会成功。
在错误警报中,我收到“内部服务器错误”消息。
我使用了萤火虫并在错误中的警报上放置了一个断点。request.responstext 声明如下:
System.InvalidOperationException: GetPlatformNames Web Service method name is not valid.
at System.Web.Services.Protocols.HttpServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,
HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing).
这是我正在使用的代码。
我正在使用 Visual Studio 2012。
我正在使用内置的 IIS。
namespace XYZ
{
//// <summary>
/// Summary description for Platform
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class Platform : System.Web.Services.WebService
{
[WebMethod]
public static string GetPlatformNames()
{
var result ="Hello World";
return result;
}
[WebMethod]
public static string GetServerTimeString()
{
return "Current Server Time: " + DateTime.Now.ToString();
}
[WebMethod]
public static void AddaPlatform(string platforName)
{
//Code to insert into database
}
}
}
function GetPlatforms() {
var param = '{platformName:"'+$("#platformNameInputTextBoxId").val()+'"}';
$.ajax({
type: 'POST',
url: 'Platform.asmx/GetPlatformNames',
statusCode: {
404: function () {
alert('Could not contact server.');
},
500: function () {
alert('A server-side error has occurred.');
}
},
success: function (data) {
alert(data);
},
error: function(request,status,error) {
alert(request.statusText);
}
});
}