【问题标题】:Referer Request推荐人请求
【发布时间】:2014-08-07 17:05:28
【问题描述】:

我正在开发一个 servlet 调查应用程序。我的问题是request.getHeader('referer') 在第一次访问应用程序时没有获得正确的引用 URL。
但是第二次(或任何其他时间)它确实得到了正确的。

应用程序第一次要求用户进行调查,然后将他们重定向到资源 url。第二次它只将用户重定向到资源,因为他们已经参加了调查。我有 2 个处理 take.survey 逻辑的 java 文件,第二个只是重定向和记录信息 (survey.logic)

两个例程文件都使用request.getHeader('referer')。用户第一次被要求参加调查(take.survey)。

正如我之前所说,应用程序将在数据库中记录目标 url,而不是引用 url。第二次运行顺利,得到了正确的推荐信息。

示例:

我正在使用以下地址的页面调用应用程序:

refering page:   thispage

应用位于:

app/take.survey

以下链接插入thispage 以访问应用程序:

app/take.survey?refurl=http://google.com

结果:

它记录的第一次点击链接:app/take.survey?refurl=http://google.com 第二次点击链接得到正确的值:thispage (url) 第三次正确值,依此类推。

同样,两个文件都使用:request.getHeader('referer') 来获取推荐值。

有什么想法吗?

谢谢。

【问题讨论】:

    标签: java servlets request http-referer


    【解决方案1】:

    当您打开带有window.open() 的窗口时,引荐来源不适用,仅在单击常规链接或表单提交时适用。推荐人是您单击将您带到此处的链接或提交按钮时所在的站点。所以如果他们来自谷歌,这就是推荐人说谷歌的原因。第一次进入您的站点时,引荐来源网址将始终为空白(空字符串或 null),因为他们在地址栏中键入了地址(与您通过 JS 打开弹出窗口时相同),或者其他站点,因为他们通过以下方式进入您的站点一条链接。首次进入该网站时,引荐来源网址不会是您的网页之一。

    【讨论】:

    • 我通过使用原始推荐页面使其工作,通过 Velocity 文件将其保存在会话中,并在将其插入数据库之前将其传递给 java servlet。仅供参考:我没有用 window.open() 打开任何东西 :)
    猜你喜欢
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多