碰到url限制了

本文介绍了一种因浏览器对URL长度限制导致的操作失效问题及解决方案。通过使用模态窗口传递数据ID并转换为session的方式,有效避免了原页面向服务器提交大量数据的问题,减少了带宽占用,提高了操作速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前做嘅的一个项目,今日客户打电话来话有个操作冇反应了,一检查原来喺因为浏览器对url长度嘅限制,url超过2K后浏览器就忽略操作,唔作任何反应。测试果阵剩系得200条数据,冇发现呢个问题,而家客户单次处理就有600几条数据,问题就暴露出来。

谂过用cookies或form,cookies同样有限制,而用form有好多地方要改比较麻烦,而且.Net跨页面传递好鬼麻烦,最后用鸟食轩嘅方法,加咗个模态窗口,将数据ID先传递到模态窗口,由模态窗口变成session后转入处理页面,由页面还原参数。而且咁做仲有一个好处,就喺可避免原页面提交向服务器端postback大量数据、减少咗带宽占用、提高速度。

< script runat = " server " >
    
' 通过本页面将数据提交变成session,可避免原页面提交向服务器端postback大量数据(form、state),提高速度
     Protected   Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load
        CheckLogin()

        Response.Write("<table cellpadding=0 cellspacing=0 border=0 width='100%' height='100%'><tr><td align='center' valign='middle'>")
        Response.Write(
"<img src='images/loading.gif' align='middle' /><label style='font-size:14px;'>正在处理操作请求,请稍候……</label>")
        Response.Write(
"</td></tr></table>")
        Response.Flush()
        
        
Dim SessionName As String = "NEWCERTTRAN_ID"
        
If Session(SessionName) IsNot Nothing Then Session.Remove(SessionName)
        
        
If Page.IsPostBack Then
            
If CheckParam() Then
                Session.Add(SessionName, HiddenField1.Value)
                ClientScript.RegisterStartupScript(Page.GetType, 
"ret""<script>window.returnValue=1;window.close();<" + "/script>")
            
Else
                Response.Write(
"<s" + "cript>alert('参数无效!');window.close();<" + "/script>")
                Response.End()
            
End If
        
End If
    
End Sub

    
    
Private   Function CheckParam() As Boolean
        
If HiddenField1.Value = "" Then Return False
        
Dim check As String() = HiddenField1.Value.Split(",")
        
Dim i As Integer
        
For i = 0 To check.Length - 1
            
If Not IsNumeric(check(i)) Then Return False
        
Next
        
Return True
    
End Function

</ script >

< html xmlns = " http://www.w3.org/1999/xhtml "   >
< head runat = " server " >
    
< link href = " css/red.css "  rel = " stylesheet "  type = " text/css "   />
    
< base target = " _self "   />
    
< META HTTP - EQUIV = " Pragma "  CONTENT = " no-cache " >
    
< META HTTP - EQUIV = " Expires "  CONTENT = " -1 " >
    
< script language = " javascript " >
    
function aff()
    {
      var e 
= document.getElementById("HiddenField1");
      
if (!e)
      {
        alert(
"内容控件丢失,请刷新页面再执行最后一步操作。");
        window.close();
      }
      
else
      {
        var v 
= window.dialogArguments;
        
if (!v)
        {
          alert(
"参数错误!");
          window.close();
        }
        
else
        {
          e.value 
= v;
          document.getElementById(
"form1").submit();
        }
      }
    }
    
</script>
    
<title>请稍候</title>
</head>
<body onload="aff()">
    
<form id="form1" runat="server">
        
<asp:HiddenField ID="HiddenField1" runat="server" />
    
</form>
</body>
</html>
### HTTP 403 FORBIDDEN 错误原因 HTTP 403 Forbidden 是一种客户端错误状态码,表示服务器理解请求但是拒绝授权此请求。通常情况下,这并不意味着永远无法访问资源;而是当前认证机制不允许访问该特定资源。 常见原因包括但不限于: - 请求的 URL 路径存在敏感字符或不合法参数。 - 访问控制列表 (ACL) 中未授予用户足够的权限来执行操作。 - Web 应用程序防火墙(WAF) 或安全插件阻止了某些类型的流量。 - 文件或目录缺少适当读取、写入或其他必要的权限设置[^1]。 对于不同场景下的具体表现形式及其对应的处理方式如下: #### SVN 场景中的 403 错误 当使用 Subversion(SVN) 版本控制系统下载代码库时遇到 403 错误可能是因为用户的账户缺乏相应的读取权限。此时应联系管理员确认账号是否有权访问目标仓库并调整相应权限级别。 ```bash svn co https://example.com/svn/repo/project ``` #### Nginx PHP 环境下的 403 解决方法 在基于 Nginx 和 PHP 构建的服务端环境中遭遇此类状况可能是由于站点根目录内的文件夹权限不当所致。确保网站工作区拥有者具备可执行权限的同时也要注意检查是否存在默认索引页(index.html/index.php),因为缺失这些页面同样会触发 403 响应[^2]。 ```nginx location / { try_files $uri $uri/ =404; } ``` #### 外部视频链接加载失败分析 利用 HTML `<video>` 标签尝试播放来自外部源的媒体流却收到 403 反馈,则很可能是远程主机设置了严格的跨域资源共享(CORS)策略限制了直接获取内容的行为。为了克服这个问题可以考虑部署代理服务间接抓取数据或是寻找支持公开分发的目标地址作为替代选项[^3]。 ```html <video controls> <source src="https://proxy.example.com/video.mp4" type="video/mp4"> </video> ``` #### Python 包管理工具 Pip 的安装障碍排除指南 最后,在运用 pip 工具进行软件包安装过程中碰到类似的阻碍往往源于网络连接不稳定或者是 PyPI 上架版本与本地环境兼容性不佳引起的。建议先验证所使用的镜像源是否稳定可用再按照官方文档指导完成整个流程[^4]。 ```python pip install --upgrade pip setuptools wheel pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/ pip install cx_Freeze==7.2.0 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值