好了,这个问题已经被问过这里.在响应/问题的答案,用户告诉他存储refresh_token在应用程序(会话,而不是数据库,但不要紧,你保存它).在浏览了Google上的文档后,似乎access_token有一个到期日期,之后它就不再有效了.现在,我们显然可以在每个固定的时间间隔内自动刷新令牌,或者如果服务返回无效的令牌错误,从而延长令牌的生命周期,但由于某种原因,这个手动过程感觉有点hacky.我的问题是:
我正在尝试__doPostBack从我的javascript代码手动调用ASP.NET(3.5)javascript回发函数.问题是通常在<form>标记开始之后(以及隐藏字段)呈现的回发脚本块有时会在结束</form>标记附近呈现.
有没有办法强制它在表单标记的开头附近呈现?另外,ASP.NET如何确定何时/何地呈现回发客户端脚本块?
编辑>附加信息:
javascript代码驻留在引用该__doPostBack功能的用户控件中.控件本身不包含任何可以调用该函数的"回发控件".(当我提到'回发控件'时,我指的是调用__doPostBack函数而不是asp.net ImageButton和Button控件的ASP.net 控件)
基于我观察到的和@Brian关于回发脚本对页面上"回发控件"可用性的依赖性的评论,我发现当页面包含导致回发的控件时,会回显__doPostBack脚本块开场后<form>的标签,当没有,这使得他们在结束不久的</form>标签(或根据这个它甚至不应该被渲染).现在,如果没有需要它的控件,ASP.NET不会渲染回发脚本是有意义的,但是在结束标记附近的脚本的明显位置仍然是我不知道的.我无法找到任何表明此行为的文档.我能找到的就是这个.
话虽如此,我已经找到了几个解决这个问题的方法:
<asp:LinkButton ID="RequirePostBackScriptLink" runat="server" style="display:none;" />(这就是我正在使用的)Page.RegisterRequiresPostBack并实现IPostBackDataHandler接口.最后,正如@Jonathan_Bates在他的帖子中提到的,正确的做法是将引用包装__doPostBack在一个函数内部,该函数是一个事件处理程序load(或者ready如果你使用的是jquery).这样,就不需要依赖__doPostBack脚本的实际位置.
如果有人能提供有关上述行为的更多信息,那就太棒了.