我们的一位用户在尝试访问我们的 Web 应用程序的 View 之一时遇到问题(IE9;行为在 6、8 和 9 中显示一致,但在域帐户中不一致)。对于这个特定用户的 Windows 域帐户,无论使用什么凭据访问我们的应用程序,或者使用哪台机器的浏览器;尝试访问某些 View 会导致 IE 显示错误消息“样式表不包含文档元素。样式表可能为空,或者它可能不是格式正确的 XML 文档。”
其他域帐户无法重现此错误,当我们使用 VPN 并使用我们自己的浏览器时,我们也无法重现此错误,尽管遵循完全相同的过程,具有完全相同的应用程序凭据、域帐户的相同权限和组成员资格、匹配版本IE9(也使用 8 和 6 进行了测试)。我们有大约 50 个不同的客户使用此版本的应用程序,没有出现此类问题。
webapp 日志中没有任何内容可以说明这一点;成功和失败案例的请求和响应完全相同。
手动将请求附加到浏览器地址栏中的 URL 会导致 IE 呈现我们期望的 XML 响应。从浏览器请求返回的 XML,在失败和成功的情况下,看起来都是格式正确的。
有问题的 Web 应用程序在出现此错误之前的一段时间内一直处于静态状态。客户的 IT 组织已验证可以重现错误的域帐户和不能重现错误的域帐户之间的权限和组成员身份是相同的。
有什么建议吗? OLE 或 ODBC 驱动程序设置是否会影响域帐户级别的 XML 解析?对于同一域帐户,Internet Explorer 是否会在不同计算机上同样受到影响,同时具有与无法重现此行为的帐户相同的组成员身份和权限?
在清除浏览器中除下载历史记录和密码之外的所有内容后,我能够间歇性地让问题域帐户正确显示页面,但这是少数时间,并且在几次请求之后(通常是第一个)虽然)显示错误消息。
最佳答案
ACCEPT header 在页面缓存或引用更新时发生变化,显然该域没有文档的权限。结果,样式表的 MIME 类型从 application/xml 或 text/xsl 更改为 *.* 或 text/html。
解决方案是检查 ACCEPT header并防止缓存或重定向错误的请求:
# Skip Opera
RewriteCond %{HTTP_USER_AGENT} !Opera
# Check the Accept header for text/html
RewriteCond %{HTTP_ACCEPT} text\/html [OR]
# Check the Accept header for image type or *.*
RewriteCond %{HTTP_ACCEPT} gif|jpeg|png$|\*.\*$
# Forbid access if the file extension matches XSLT
RewriteRule .*\.(xsl|xslt)$ - [F]
关于xml - 不同的 IE XML/XSL 行为在相同的 View 和浏览器版本中,但具有不同的域用户帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8083522/
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我正在尝试在Ruby中制作一个cli应用程序,它接受一个给定的数组,然后将其显示为一个列表,我可以使用箭头键浏览它。我觉得我已经在Ruby中看到一个库已经这样做了,但我记不起它的名字了。我正在尝试对soundcloud2000中的代码进行逆向工程做类似的事情,但他的代码与SoundcloudAPI的使用紧密耦合。我知道cursesgem,我正在考虑更抽象的东西。广告有没有人见过可以做到这一点的库或一些概念证明的Ruby代码可以做到这一点? 最佳答案 我不知道这是否是您正在寻找的,但也许您可以使用我的想法。由于我没有关于您要完成的工作
我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c
我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru
我正在使用Rails3.1并在一个论坛上工作。我有一个名为Topic的模型,每个模型都有许多Post。当用户创建新主题时,他们也应该创建第一个Post。但是,我不确定如何以相同的形式执行此操作。这是我的代码:classTopic:destroyaccepts_nested_attributes_for:postsvalidates_presence_of:titleendclassPost...但这似乎不起作用。有什么想法吗?谢谢! 最佳答案 @Pablo的回答似乎有你需要的一切。但更具体地说...首先改变你View中的这一行对此#
目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi