`
lwj0212
  • 浏览: 49647 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

容易忽视的url长度限制(浏览器限制,http协议并无规定)

阅读更多
近期在做一个热补丁,其中有个界面在IE6下超链接无法打开,经查是链接地址太长,2161个字节,已经超出ie6,7的长度限制,现把发现此问题的过程分享给大家。
===过程=====
1、万恶的ie6,连调试都没有好的工具,ietest又不靠谱。虽然现在业界都呼吁抛弃ie6,但我们的用户还在大量使用,没办法,还得解决此问题。
2、点击超链接,没有任何反应,也没有任何js错误提示
3、检查浏览器设置,勾上了"显示每个脚本错误的通知",去掉了"禁用脚本调试"
4、再次点击,仍然没有任何错误提示,看来js代码没有错误了。也许有人会说,点击超链接怎么会有js错误,因为我们的超链接是这样写的 <a href="javascript:ckmx('xh')" >
5、问题挺奇怪,我就在其他浏览器(ie10,chrome)中把要打开的链接复制出来,粘贴在ie的地址栏里
6、不小心把地址栏中ip位置的字符给删了,那我就重新改一下,却发现根本无法输入任何字符,由此,我猜想可能url过长了
7、把url拷贝到ue中,发现url占用了2161个字节,ie,7的url限制在2048个
 
====原因及解决办法====
1、查看了链接地址的拼写,发现链接是这样写的
      location.href = _url + _param + '&returnURL='+encodeURIComponent('[%HTML::TEXT.requestURL2%]');
     _param也就一个参数,那看来肯定是[%HTML::TEXT.requestURL2%]造成的。
2、按理说[%HTML::TEXT.requestURL2%]也不会超长的,仔细看来发现我们的界面返回都是利用这个参数来返回到上个界面的,现在的这个界面已经经过了5轮钻取,A>B>C>D>E,经过前边4轮后,requestURL2已经非常长了,才造成了这个问题。
3、当前界面的链接地址改为location.href = _url + _param;不再拼接后边的参数。下一个界面的返回简单实用window.history.back();
 
这个问题一般情况下不会发生,发此贴给大家个警示,无意间就造成了此问题。
firefox,chrome,Opera的url长度都是4098个;
ie8之后网上没搜到,也没去官网查,不过我们这个界面ie8,ie10都能打开,估计他们也改为了4098
ie6,7的长度是2048
分享到:
评论

相关推荐

    计算机病毒与防护:PHP表单处理(POST).ppt

    2. **无大小限制**:POST请求可以携带大量数据,而GET请求通常受限于URL长度。 3. **安全传输**:由于数据不直接暴露,POST更适合传输密码或其他敏感信息。 例如,以下HTML代码展示了一个简单的POST表单: ```html...

    Ajax模式 无刷新技术 用户名验证

    对于用户名验证,确保只接受安全的字符,限制长度,并对输入进行适当的清理和过滤。 最后,记得在开发过程中使用开发者工具来调试Ajax请求,查看请求头、请求体和响应,这对于解决问题非常有帮助。通过不断地实践和...

    ajax实现异步提交,判断用户名是否存在与是否过短

    在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛应用于实现页面的无刷新更新,提高用户体验。本文将深入探讨如何使用Ajax实现异步提交,以及如何在前端验证用户名是否存在和长度是否过短。 首先,...

    lil-hash:一个简单的共享URL缩短器

    更重要的是,这个项目设计时考虑了用户体验,确保用户在使用后退按钮时能够正确返回到之前访问的页面,这是许多URL缩短服务忽视的一点。 二、技术栈 1. 前端 “lil-hash”项目采用前端技术进行用户界面的开发。...

    Flexigrid在IE下不显示数据的有效处理方法

    在一般情况下,Flexigrid默认或推荐使用POST方式来请求数据,因为这种方式可以承载更多的数据量,并且可以避免URL长度限制。然而,IE浏览器对POST请求有特定的要求,特别是在没有数据需要提交的情况下。 问题的关键...

    jsp 用户登录模块

    6. **安全考虑**:在实际应用中,登录模块需要考虑多种安全措施,如防止SQL注入攻击,使用HTTPS协议进行安全传输,以及实施密码策略,如最小长度、复杂性要求等。另外,还应处理登录失败次数过多的情况,可能需要...

    esapi4js-0.1.2.zip下载包

    - **输入验证**:对用户提交的数据进行严格的检查,比如限制字符集、长度,检测特殊字符等,以防止恶意脚本注入。 - **输出编码**:在将数据输出到HTML时,使用正确的编码方式,避免浏览器将其解释为HTML标签或...

    js直接编辑当前cookie的脚本

    这行代码是通过URL编码的方式嵌入到浏览器地址栏中执行的JavaScript代码。当执行这段代码时,会弹出一个对话框,对话框的标题是“LinxEditcookie:”,并显示当前页面所有的cookie值。用户可以修改这个值,然后点击...

    [文件数据]phpMyAdmin v2.7.0-pl2 for Windows_phpmyadmin.zip

    配置完成后,通过Web浏览器访问指定URL即可使用。 **注意事项** 1. **版本兼容性**:确保phpMyAdmin版本与使用的MySQL版本兼容,否则可能出现功能缺失或错误。 2. **性能优化**:大型数据库可能需要调整...

    2021-2022计算机二级等级考试试题及答案No.10364.docx

    24. 限制文本框输入长度,需设置`MaxLength`属性。 25. 输入设备是将外部数据转换为计算机能理解形式的设备,例如键盘、鼠标等。 26. 从URL "www.stats.gov" 看,它属于政府机构,顶级域名.gov通常表示政府网站。 ...

    php采用curl模仿登录人人网发布动态的方法

    在当前的互联网开发领域,PHP是一种广泛使用...开发者需要对HTTP协议、cURL选项、以及目标网站的API有深入理解才能有效地实现这一功能。在此基础上,还需要关注安全性,合理使用这一技术,遵守相关法律法规和网站条款。

    1_PHP_Scripting_Basics_php_

    例如,`strlen()` 计算字符串长度,`str_replace()` 替换字符串中的部分文本。 ### 错误与异常处理 PHP使用错误报告级别来处理错误,可以使用 `error_reporting()` 设置。异常处理通过 `try...catch` 结构实现,有...

Global site tag (gtag.js) - Google Analytics