ASP.NET 回调未在 IE 中触发
我们正在使用一个在 ASP.NET 页面中使用回调的控件。
- 该控件在 FireFox、Google Chrome 等中工作正常。
如果我们不使用 ASP.NET AJAX History,该控件工作正常。一旦我们调用此代码,回调就会在 IE(6、7 和 8)中停止工作:
ScriptManager.GetCurrent(Page).AddHistoryPoint("h", id);
我做了一些服务器端调试,以弄清楚 RaiseCallbackEvent 没有在 IE 中触发,而是为其他人触发。
我做了一些服务器端调试,以找出- 我使用 Fiddler 进行了调试,发现它没有查询适当的 URL。服务器返回无效请求错误。
其他浏览器将 HTTP POST 发送到: test.aspx
但是,IE 将其发送到: test.aspx%23&&h=12
这是因为浏览器栏中的 URL 是 test.aspx#&&h=12,因为我们的 AJAX 历史记录控件。
在 JavaScript 中调用 WebForm_DoCallback 时,如何强制 IE 删除用于 AJAX 历史记录的锚点?
We're using a control that uses Callbacks in our ASP.NET page.
- The control works fine in FireFox, Google Chrome, etc.
The control works fine if we do not use ASP.NET AJAX History. As soon as we call this code, the callbacks stop working in IE (6, 7 and 8):
ScriptManager.GetCurrent(Page).AddHistoryPoint("h", id);
I did some server side debugging to figure out that RaiseCallbackEvent was not fired in IE, but was fired for others.
- I have debugged using Fiddler and observed that it was not querying the appropriate URL. The server returns an invalid request error.
Other browsers send the HTTP POST to:
test.aspx
However, IE is sending it to:
test.aspx%23&&h=12
This is because the URL in the browser's bar is test.aspx#&&h=12, because of our AJAX History Control.
How can I force IE to drop the anchor used for AJAX history when calling WebForm_DoCallback in JavaScript?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
阅读 WebForm_DoCallback 上的内容,我没有看到任何设置服务器调用的 url 的内容。这意味着它要么从表单操作获取它,要么将其发送到当前页面。尝试设置表单的操作属性。
Reading the contents on WebForm_DoCallback, I didn't see anything that set the url of the server call. This means that it is either getting it fromthe form action or sending it to the current page. Try setting the form's action attribute.