【发布时间】:2012-12-24 21:52:38
【问题描述】:
我最近在我的 ASP.NET Web 应用程序中注意到,如果我将我的用户代理设置为空字符串(使用 FireFox 插件来欺骗用户代理),那么 ASP.NET 将不会生成执行所需的 javascript回发。更具体地说,如果您尝试从您的 javascript 中调用 __doPostBack(a, b) 函数,您将收到一条错误消息,指出该函数未定义。
我知道每个浏览器都有一个用户代理,所以这种情况不会经常出现,但问题的本质仍然存在:在某些情况下,无法识别或格式错误的用户代理会导致您的 Web 应用程序无法使用,如果你依赖回发。
这类似于这个问题:ASP.net not generating javascript for some User Agents,但如果我没看错的话,看起来你会逐个修复每个无法识别的用户代理并将其屏蔽为另一个浏览器。我不太关心单个用户代理,更关心的是某些用户代理将无法使用我的应用程序并且我不知道这一点,因为错误发生在 javascript 中而不是服务器上。
有谁知道我可以强制 ASP.NET 始终生成所需的 javascript 的方法吗?
【问题讨论】:
-
您的用户真的遇到过这个问题吗?如果没有,那么我会问您的用户是否实际遇到过其他问题。
-
@John - 没有人报告它,但我们的网络应用程序处理电子商务,因此遇到问题的普通用户通常不会遇到联系我们的麻烦,他们会继续前进到竞争对手的网站。我们还刚刚推出了一个移动商店,它邀请了一个全新的可能的用户代理联盟,我想尽可能多地避免问题。
-
我希望您记录未处理的异常。否则,您可能会花时间解决客户没有遇到的问题,而您的竞争对手却会花时间改进他们的网站。
-
@John - 我们控制了未处理的异常,并在问题出现时修复它们。到目前为止,您所说的一切都没有真正解决我的问题。
-
@Adam 我同意约翰的观点。只更新用户代理以避免 IE 10 等问题,但不更改默认浏览器的默认行为。
标签: javascript asp.net postback dopostback