我正在创建一个asmx Web服务。 在visual studio 2012中,项目名称我右键单击并添加了一个Web服务名称 UserDetails.asmx
现在我正在尝试在js文件中使用Web服务。像这样
$.ajax({
type: "POST",
url: "UserDetails.asmx/HelloWorld",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert('success');
},
error: function () {
alert("Error");
}
});
显示错误 POST http://192.168.9.185/GPS/UserDetails.asmx/HelloWorld 500(内部服务器错误)
我的代码中是否有任何错误,或者我遗漏了某些内容以致显示错误。 我的Asmx页面
<%@ WebService Language="C#" CodeBehind="~/App_Code/UserDetails.cs" Class="UserDetails" %>
我的代码背后
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
/// <summary>
/// Summary description for UserDetails
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 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 UserDetails : System.Web.Services.WebService {
public UserDetails () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
}
答案 0 :(得分:0)
修改强>
简答:只需取消注释[System.Web.Script.Services.ScriptService]
使用
深入挖掘错误消息error: function (xhr,status, error) {
alert("Error");
}
并且检查xhr显示实际错误是其他错误(只能从脚本中调用类定义上具有[ScriptService]属性的Web服务)。
我在后面的aspx代码中使用[WebMethod],每当收到这样的消息时,我发现我传递的数据有错误。因此,请尝试在$ .ajax()
中添加data:"{}",
如this帖
中所述进行只读请求时,空数据参数是关键。由于未知原因,当没有包含数据时,jQuery没有正确设置指定的内容类型。