【问题标题】:Postback is not working in Safari in Windows 7回发在 Windows 7 的 Safari 中不起作用
【发布时间】:2012-08-02 04:09:06
【问题描述】:

我们的 QA 团队报告说,我们的一个应用程序在 Windows 7 的 Safari 中无法运行。在检查了问题后,我们发现任何回发事件都无法运行。经过一些尝试,我们发现 Page.IsPostback() 报告错误,并认为这是第一次加载页面,并且回发不包括 ViewState。

我们尝试了许多解决方案,包括
ASP.Net postback problem with ViewState in Safari on Windows 7
Viewstate invalid when using Safari
ViewState Chunking in ASP.NET 2.0 (maxPageStateFieldLength)

但都没有让 Safari 正常工作。

这个应用程序没有什么特别之处。普通页面使用一个非常普通的母版页。

有什么建议吗?

【问题讨论】:

  • 我的建议。 1. 检查 javascript 错误,2. 压缩和切割视图状态。
  • @Aristos,没有 javascript 错误。此外,我将视图状态分成多个字段,但同样的问题仍然存在,任何回发都被视为全新的回发:(
  • 你看到了什么?回发是发生还是根本不发生并一直在那里等待?
  • @Aristos,回发发生但 Page.IsPostback() 报告错误并认为这是页面的首次加载,并且回发不包括 ViewState。
  • @kman0:我想出了如何解决这个问题。请在下面查看我的答案。

标签: asp.net windows-7 safari postback viewstate


【解决方案1】:

如果启用了协商提供程序,Safari 在 IIS 下使用 Windows 身份验证时会出现问题,因此 AJAX POST 无法正常工作。

如何解决?
在 IIS 中,转到您网站的身份验证设置。右键单击 Windows 身份验证,选择提供程序并删除协商,留下 NTLM,这样一切正常。

[参考资料]
AJAX POST Request Only Works Once in Safari 5
Negotiate Mechanism Wikipedia 中的文章显示它没有在 Safari 中实现

【讨论】:

  • 您不必进入 ISS(国际空间站),但在 IIS 中就足够了 ;) 开玩笑的,对于 IIS Express,您可以在文件 C:\Users\[Username]\Documents\IISExpress\config\applicationhost.config 和在<security> 部分中搜索windowsAuthentication 部分。
猜你喜欢
  • 2016-06-04
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多