【发布时间】:2010-12-08 22:43:23
【问题描述】:
我想从 jquerys ajax 将参数传递给我的 web 服务。我该怎么做?
我已经查看了一些相关问题,但找不到适合我的解决方案。我试过这个:jQuery AJAX parameter not being passed to MVC 但我没有使用 mvc,所以我确定这就是解决方案不起作用的原因。 我的 jquery 看起来像这样:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "CarService.svc/GetCar",
data: {CarID:117},
dataType: "json",
success: function (data) {
$("#lblCurrentTime").text("");
$("#lblCurrentTime").text(data.d.CarID);
}
});
我的“数据”部分有问题,对吗?如果将数据:部分保留为数据:“{}”,我可以让我的方法运行(并且我不传递任何参数)但是当我尝试上述方法时,萤火虫告诉我:
Firebug's log limit has been reached. 0 entries not shown. Preferences
POST http://localhost:64461/TimeService.svc/GetCar
POST http://localhost:64461/TimeService.svc/GetCar
500 Internal Server Error
1.12s
我的 Web 服务如下所示:
[OperationContract]
public CarTable GetCar(int id)
{
using (var sqlc = new SqlConnection(@"sdfgsdfg"))
{
sqlc.Open();
var cmd = sqlc.CreateCommand();
cmd.CommandText = "HUGE QUERY HERE ^^";
//id = 117;
cmd.Parameters.Add("CarID", System.Data.SqlDbType.Int).Value = id;
using (var reader = cmd.ExecuteReader())
{
CarTable Cars = new CarTable();
while (reader.Read())
{
Cars.CarID = reader["CarID"].ToString();
Cars.CarName = reader["CarName"].ToString();
}
return Cars;
}
}
}
[DataContract]
public class CarTable
{
[DataMember]
public string CarID { get; set; }
[DataMember]
public string CarName { get; set; }
}
编辑:如果我将数据部分更改为:
data: CarID=117,
我得到 Sys.ParameterCountException:参数计数不匹配。 [Break On This Error] {name: "format", type: String}
【问题讨论】:
-
您是否可以使用 SoapUI 之类的工具调用您的网络服务?
-
您是否尝试过“完成”而不是成功,并查看错误消息是什么?
-
我不熟悉那个工具,但我现在就去看看。
-
我刚刚在 SoapUI 上度过了最后几分钟,它让我感到非常困惑 -_- 这可能超出了我目前的理解范围。
-
{"ExceptionDetail":null,"ExceptionType":null,"Message":"由于内部错误,服务器无法处理请求。有关错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或来自
配置行为),以便将异常信息发送回客户端,或根据 Microsoft .NET Framework 3.0 SDK 文档打开跟踪并检查服务器跟踪日志。 ","StackTrace":null}
标签: jquery ajax wcf web-services