IE和Firefox在提交表单时对来路页面的判断差异

  首先我们做个测试:
  写一段JS提交一个表单:

theForm.action=”test.php?id=1″;
theForm.submit();

  在test.php里打印来路页面:

die($_SERVER[“HTTP_REFERER”]);

  然后分别在Firefox和IE里面查看test.php页面,发现均显示test.php。
  接下来,将上述JS更换为:

location.href=”test.php?id=1″;

  即改用GET方式提交表单。然后再次查看test.php页面,会发现Firefox仍然显示test.php,而IE显示空白。
  这说明IE并不将location.href属性的更改视为一次点击链接的过程。

《IE和Firefox在提交表单时对来路页面的判断差异》有3个想法

  1. 不是這樣吧,我也碰到過這樣的問題,看了看手冊,手冊上是這樣寫的

    链接到当前页面的前一页面的 URL 地址。不是所有的用户代理(浏览器)都会设置这个变量,而且有的还可以手工修改 HTTP_REFERER。因此,这个变量不总是正确真实的。

  2. 是的,看来写程序的时候不能一味依赖这个变量,尤其是涉及界面逻辑的时候。
    ajax的应用就可以规避这个问题了,呵呵。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s