我在我的ruby-on-rails应用程序中放置了Excel电子表格中的超链接。链接指向一些特权页面,这些页面需要,登录后,我应该被带到所请求的页面。然而,发生的事情是,登录后,我在网站的主页上。有趣的是,当我右键单击Excel中的链接并将链接粘贴到Web浏览器URL中时,所以我不认为这是我的应用程序的错,而是Excel中的一些东西,我错过了?
我的场景和这个场景差不多:http://www.geekstogo.com/forum/topic/289186-excel-2007-hyperlink-loads-web-login-screen-not-linked-urlplease-help-me/
5条答案
按热度按时间pod7payv1#
这个问题通常发生在IE中,我也遇到了同样的问题。
解决这个问题很简单
1.在公用文件夹中创建一个redirect.html页(由于您使用的是ROR,因此是公用文件夹)
1.将此复制到您的redirect.html
1.应该修改您在excel中构造的链接
例如,旧链接-http://test.com/post/comments/1新链接应为-http://test.com/redirect.html?page=post/comments/1
1.您需要将URL的一部分(在基本URL之后)作为参数传递
这是怎么回事。
当用户点击Excel中的链接时,它指向redirect.html,javascript将构造实际的URL并再次重定向到正确的页面,如果用户已经登录,则将导航到实际页面,否则将重定向到登录/主页。
js81xvg62#
我不确定这是否是一个答案,但我在申请时也遇到了同样的问题。
整个应用程序,包括主页,都是受保护的(我使用的是Devise),所以每当用户想要访问http://myapp时,它都会将他重定向到http://myapp/users/sign_in。
我认为Devise使用301或302重定向到登录屏幕。
我的发现是在Office中点击的链接和在IE中打开的链接不能适应这个重定向(当Chrome是默认浏览器时没有问题)。
最后,我没有找到其他的解决办法,只能直接链接到登录页面……也许还有其他的选择,但我仍然在寻找它们。
编辑:找到这篇文章(从2006年)about a bug in Outlook,它完全符合我们的情况。再次,不是一个解决方案,但至少是一个解释。
rn0zuynd3#
这是Excel的internal URL handling的问题,它与现代Web设计模式(例如会话+重定向)有关。
下面是一个客户端解决方案,它绕过Excel的内部机制,而是使用操作系统默认的URL处理程序。请注意,由于它使用宏,因此这种方法需要适当的安全设置。
在工作表的VBA模块中,添加以下代码:
这是基于twoother SO答案的答案。
eyh26e7m4#
我在@Bharath的回答中更新了
redirect.html
,用现在可用的Web API替换了正则表达式操作:请参阅@Bharath的original answer以获得进一步的解释。
当然,也有处理错误(例如
if (params.has('page')
)等的余地。另见Google的Eric Bidelman的Easy URL Manipulation with URLSearchParams。
vwkv1x7d5#
我现在正面临着同样的问题。
有人能帮我解决这个问题吗?我运行的是x86位的thinkpad。所以上面提供的客户端解决方案对我不起作用。还有其他想法吗?