我有这个function让我回到经理列表 function getManagers() { var jqxhr = $.ajax({ type: ‘POST’, contentType: “application/json; charset=utf-8″, url: ‘/webservice.asmx/GetManagers’, dataType: ‘json’ }).success(function(data) { var options = ‘Select Manager’; for (var i = 0; i < data.length; i++) { options += '’ + data[i].Description + ”; } $(‘#ReceivingCellManager’).html(options); }).error(function(data) { $(‘.ErrorText’).html(‘Manager load failed please refresh page with F5’); $(“#errormessage”).dialog(‘open’); }).complete(function() […]
我正在尝试使用.aspx页面中的方法为AJAX请求提供服务。 出于某种原因,我没有得到我想要的数据。 谁能告诉我我做错了什么? mypage.aspx: Protected Sub Page_Load(sender As Object, e As System.EventArgs) End Sub Public Function testmethod() As Integer Return 5 End Function JQuery的: $(“#mybutton”).click(function() { $.ajax({ type: “POST”, url: “mypage.aspx/testmethod”, data: “{}”, contentType: “application/json; charset=utf-8”, dataType: “json”, success: function(msg) { alert(“success”); $(“#myresults”).html(msg.d); }, error: function(msg) { alert(“error:” + JSON.stringify(msg)); } }); }); 当我点击我的按钮mybutton我收到一条警告“错误:”,然后是大量的HTML说: Unknown […]
我把头发撕成了这个,所以忍受我(这是一个很长的post)。 基础信息 ASP.NET 3.5与ASP.NET兼容模式下的WCF服务 将jQuery与此服务代理一起用于AJAX请求 自定义IErrorHandler和IServiceBehavior实现来捕获exception并提供故障,这些故障被序列化为JSON 我正在使用Cassini进行本地测试(我看过一些线程,讨论在本地调试时出现的问题,但在生产环境中工作正常)。 我遇到的问题是,无论何时从我的WCF服务抛出exception,都会触发$.ajax调用的成功处理程序。 响应为空,状态文本为“成功”,响应代码为202 /已接受。 IErrorHandler实现确实被使用,因为我可以单步执行它并观察创建的FaultMessage。 最后发生的事情是success回调会引发错误,因为响应文本在期望JSON字符串时为空。 error回调永远不会触发。 提供一点洞察力的一件事是从端点行为中删除enableWebScript选项。 我这样做时发生了两件事: 回复不再被包裹(即没有{ d: “result” } ,只是”result” )。 error回调被触发,但响应只是来自IIS的400 / Bad Request黄色死亡屏幕的HTML,而不是我的序列化故障。 我尝试过关于关键字“jquery ajax asp.net wcf faultcontract json”的随机组合的前10个或更多结果中显示的内容,所以如果你打算谷歌搜索答案,请不要打扰。 我希望SO上的某个人之前遇到过这个问题。 最终我想要实现的目标是: 能够在WCF方法中抛出任何类型的Exception 使用FaultContact 捕获ShipmentServiceErrorHandler的exception 将序列化的ShipmentServiceFault (作为JSON)返回给客户端。 调用error回调,以便我可以处理第4项。 可能与以下内容有关: WCF IErrorHandler扩展未返回指定的Fault 更新1 我检查了跟踪System.ServiceModel活动的输出,并在调用UpdateCountry方法后的一个点上抛出了一个exception,消息是 服务器返回了无效的SOAP错误。 就是这样。 一个内部exception抱怨序列化程序期望一个不同的根元素,但我不能破译其他很多东西。 更新2 因此,随着更多的麻烦,我得到了一些工作,虽然不是我认为理想的方式。 这是我做的: 从web.config的端点行为部分中删除了选项。 从服务方法中删除了FaultContract属性。 实现了WebHttpBehavior的子类(称为ShipmentServiceWebHttpBehavior )并覆盖了AddServerErrorHandlers函数以添加ShipmentServiceErrorHandler 。 […]