【问题标题】:Obscuring jQueryUI Tabs content遮蔽 jQueryUI 选项卡内容
【发布时间】:2011-10-11 04:28:56
【问题描述】:

我一直在使用 jQuery UI Tab 组件,并成功地实现了通过 ajax 为每个选项卡加载内容。每个选项卡调用一个带有get变量的通用php页面,然后由通用页面解析以识别和回显页面内容。

我面临的问题是阻止用户直接链接到这个常见的 php 页面,这会将页面内容加载到空白浏览器窗口中......在选项卡之外。我尝试检测 $_SERVER["HTTP_REFERER"] 仅在来自远程站点时加载内容,但这有几个缺点,即后退按钮和本地页面链接。肯定有更清洁的方法。

希望我遗漏了一些简单的东西,但是如何强制在给定页面的选项卡中查看 ajax 内容,而不是回避选项卡?

谢谢

【问题讨论】:

    标签: php jquery-ui jquery


    【解决方案1】:

    您无法在 100% 的情况下阻止它,但您可以通过以下方式阻止大多数人进行非 ajax 访问:

    if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
        // it's an ajax request
    }
    

    请记住,标头很容易被欺骗,因此这绝不是安全的,但它可以很好地处理大多数请求。

    【讨论】:

    • 我不担心欺骗,只担心普通的日常访问者。但是,经过进一步测试,Win7 上的 IE9 似乎没有通过此标头,而 Mac 和 Windows 下的所有其他浏览器都会发送它。哦,好吧,另一个 IE 解决方法……回到绘图板。
    • IE 变通办法有时是一种不幸的生活方式 :) 你可以在查询字符串上传递一些东西,比如?ajax=1。不是最漂亮的解决方案,但对于您正在做的事情可能就足够了。
    猜你喜欢
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多