当我们使用301重定向时如何收集客户端数据
How to collect client data when we redirect using 301 redirect?
有一个像Clickmeter这样的系统,允许人们为他们的横幅广告创建一个智能链接。这里是对该系统的简短解释。你可以输入一个URL作为登陆页面,系统会给你一个特殊的URL来代替原来的URL。现在,如果有人点击了这个特殊的链接,他将被重定向到你想要的登陆页面。
我正在开发类似的东西,但这里有麻烦。我必须使用301重定向,因为一些SEO的事情,301重定向只在服务器端可用,我知道。但是我想在重定向客户端之前获得一些客户端数据,例如浏览器名称,操作系统模型和浏览器语言。我在javascript中做这部分,绝对是客户端。
我不知道该怎么做,或者如果我错了什么。但我知道Clickmeter正在做我想做的事情。他们获取一些客户数据,然后进行301重定向。下面是CLickmeter的一个示例链接:http://9nl.it/vz0d
您不会在客户端获得客户端的数据。您可以在服务器端通过在执行301重定向之前读取和处理Request.UserAgent
来完成:
// get the User Agent
string userAgentText = HttpContext.Current.Request.UserAgent;
// Process the User Agent, and extract the information you want: browser, OS, version...
...
// Make the 301 redirection to the target URL programmatically
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location", TARGET_URL);
您可以通过使用window.navigator.userAgent
在JavaScript中获得类似的信息(以及AJAX在单击时发送数据),但我不推荐这种解决方案,原因有两个:
- 如果你只是提供一个URL(你的服务听起来像一个URL缩短器),你不能注入JavaScript代码
- 如果用户禁用了JavaScript,这个解决方案将无法工作。
要了解如何做到这一点的更多信息,请阅读这些问题:
- 我如何从Request.UserAgent中获取操作系统?
- 请求。UserAgent和Request.Browser?
- 301重定向
- 如何检测浏览器的版本?(如果你仍然决定用JS的方法)
相关文章:
- 客户端服务器REST API captcha实现
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何使用Socket.io将命令从客户端发送到服务器
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 如何将我的javascript库公开给其他客户端使用
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 返回/从Twit's客户端.get
- 将客户端特定的日期格式返回到服务器MVC4
- MobileFirst:在客户端运行计时器作业-最佳选项
- 标签客户端的设置值
- 我的客户端选项是什么
- 如何在客户端获取服务器删除/更新收集项的 ID
- 如何使这个javascript函数实际收集服务器时间和倒计时,直到事件开始而不是浏览器/客户端时间
- 为什么我的MVC控制器没有从击倒客户端收集我所有的值
- 如何在Meteor中重定向到外部URL并收集客户端数据
- 当我们使用301重定向时如何收集客户端数据
- 客户端和服务器之间的共享收集