首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Request.ServerVariables("HTTP_REFERER")在IE中不起作用

Request.ServerVariables("HTTP_REFERER")在IE中不起作用
EN

Stack Overflow用户
提问于 2012-01-27 18:37:05
回答 2查看 21.5K关注 0票数 1

在Internet Explorer中,Request.ServerVariables("HTTP_REFERER")无法正常工作。

我们有一个要求,比如,有两个不同的网站,www.example1.com和www.example2.com。我必须将所有使用www.example1.com的用户重定向到www.example2.com,当我们有意在www.example2.com的下拉列表中选择www.example1.com时,它应该打开而不进行任何重定向。

为此,我在www.example1.com中使用了Request.ServerVariables("HTTP_REFERER"),这样我就可以根据我申请的重定向来识别谁在请求www.example1.com。这在所有标准浏览器中都很有效,比如Mozilla和Google Chrome,但不适用于Internet Explorer。

我在www.example1.com上使用了下面的ASP代码

代码语言:javascript
复制
<%if(Request.ServerVariables("HTTP_REFERER") <> "http://www.example2.org/") then

URL = "http://api.ipinfodb.com/v3/ip-country/?key=c184c2d089c7763a81d7701a662b57fe3bf90dbfd8bf60d29948878531e24472&ip=" &           Request.ServerVariables("REMOTE_ADDR")
                Set conn = Server.CreateObject("MSXML2.ServerXMLHTTP")       
            conn.open "GET", URL, False, "", "" 
            conn.send         
                UserCountry = conn.ResponseText  
                conArray = Split(UserCountry, ";") 
            if ((conArray(3) = "US")) Then
                response.redirect("http://www.example2.org/")
            end if
end if            
 %>

它在除IE之外的所有浏览器中都工作得很好。有没有人知道这件事?你能建议我所有的浏览器(包括IE)的等效代码,这将给出类似的结果,如所提到的。

EN

回答 2

Stack Overflow用户

发布于 2012-01-27 18:49:02

您不能依赖HTTP_REFERER的存在:不需要用户代理来设置它。

尝试使用HTTP_HOST:从HTTP1.1开始,主机头是必需的。

代码语言:javascript
复制
If (Request.ServerVariables("HTTP_HOST") <> "www.example2.org") Then
票数 2
EN

Stack Overflow用户

发布于 2012-01-27 19:28:12

请检查下面的链接,该链接说明HTTP_REFERER不是HTTP规范的强制成员。

您可以使用服务器变量SERVER_NAME来满足您的需求,它应该可以工作。

编码快乐!!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9032005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档