Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在同一按钮上调用web方法和回发方法_Jquery_.net_Web Services_Http - Fatal编程技术网

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

Jquery 在同一按钮上调用web方法和回发方法,jquery,.net,web-services,http,Jquery,.net,Web Services,Http,我有一个这样的按钮: <button class="btn btn-small" id="attendYes" data-rsvp="2" runat="server">Yes</button> 是 这最初是通过jQuery调用web方法将数据提交到数据库,然后在成功回调时更改按钮颜色。然后,我为这个按钮添加了一个post back事件,以便向用户提供一个ICAL文件 我一调用postback方法,ajax调用就开始失败。web服务运行正常,我可以在fiddler中看

我有一个这样的按钮:

<button class="btn btn-small" id="attendYes" data-rsvp="2" runat="server">Yes</button>
这最初是通过jQuery调用web方法将数据提交到数据库,然后在成功回调时更改按钮颜色。然后,我为这个按钮添加了一个post back事件,以便向用户提供一个ICAL文件

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


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

你描述的行为是完全正常的

回发类似于浏览器的重定向。这意味着卸载整个HTML文档,并从服务器请求一个新文档

因此,当浏览器以任何一种方式卸载整个文档时,浏览器都会停止当前运行的所有Javascript/AJAX。浏览器向相应的服务器发送所有当前挂起的ajax请求的取消请求,从而导致错误


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

如何调用回发?仅使用绑定到事件的runat控件的标准回发javascript.net添加,我不专门调用它。然后ajax调用失败是正常的。回发实际上是指向浏览器的重定向。每当浏览器启动回发时,它都会停止所有当前的ajax调用,因为当浏览器以任何方式更改html内容时,都不再需要执行这些调用。您必须等到ajax完成后再回拨帖子。但在我看来这毫无意义,理想情况下,我会在一个web方法中完成这一切,但我不能在web方法调用期间使用响应流为文件提供服务。我想,如果ajax调用成功,我可能不得不手动调用它。谢谢你的帮助-如果你想回答,我很乐意接受。