在同一个按钮上调用web方法和回发方法

时间:2014-02-28 12:16:11

标签: jquery .net web-services http

我有一个像这样的按钮:

<button class="btn btn-small" id="attendYes" data-rsvp="2" runat="server">Yes</button>

这最初通过jQuery调用web方法将数据提交到数据库,然后在成功回调时,按钮颜色被更改。然后我为此按钮添加了一个回发事件,以便向用户提供ICAL文件。

一旦我调用了回发方法,我就开始从ajax调用中获取失败。 Web服务正确运行,我可以在fiddler中看到它已经返回了正确的JSON对象,尽管fiddler显示了“会话被客户端,Fiddler或服务器中止”的图标。

更改了数据库并提供了ICAL文件,我的问题是即使在Web方法完成之前总是运行失败回调。我做错了什么。

1 个答案:

答案 0 :(得分:1)

您描述的行为完全正常。

回发就像是浏览器的重定向。这意味着整个HTML文档被卸载,并且从服务器请求新文档。

因此浏览器会停止当前正在运行的所有Javascript / AJAX,因为浏览器会以任何方式卸载整个文档。浏览器会将所有当前待处理的ajax请求的取消请求发送到相应的服务器,从而导致错误。

您必须等待ajax调用完成,然后再回发。