精华内容
下载资源
问答
  • 浏览器URL传参最大长度问题

    千次阅读 2019-09-16 19:49:23
    这几天为解决一个BUG头疼了一段时间,BUG现象如下: 一个选择人员的选择控件,当... 看到这个错误非常纳闷,无法下手,只能再一次看控件的代码,在详细看代码时,发现所有的参数都是经过URL传参的,赶紧百度一下UR...

    这几天为解决一个BUG头疼了一段时间,BUG现象如下:

    一个选择人员的选择控件,当选择多个人时(50多个的时候),返回没有错误现象,而再一次打开的时候就报404错误。
    看到这个错误非常纳闷,无法下手,只能再一次看控件的代码,在详细看代码时,发现所有的参数都是经过URL传参的,赶紧百度一下URL参数的大小限制(从这个百度开始,我就进入一个误区:参数大小的限制)。结果发现网上都说URL参数的大小为256字节,再一看自己的数据,的确超过了这么多,既然找到原因就修改,把参数传递方法修改为不通过URL传参。
    过了几天,再一次翻出这个BUG,想解决的完善一点,再一次百度,发现第一次的理解完全错误了,一次彻底的查询,总结如下两点,而对应URL参数大小限制为256字节,自己也不能确定是否有这一说话,至少测试没有这个现在。
    1. 各个浏览器对URL的长度有现在。
    2. IIS 7 对 Query String 有长度限制;默认:2048;
    根据网上的资料(推荐一篇博客:http://www.cnblogs.com/henryhappier/archive/2010/10/09/1846554.html)了解到各个浏览器对URL的长度现在如下:
    1. IE浏览器对URL的长度现限制为2048字节(自己测试最多为2047字节)。
    2. 360极速浏览器对URL的长度限制为2118字节。
    3. Firefox(Browser)对URL的长度限制为65536字节。
    4. Safari(Browser)对URL的长度限制为80000字节。
    5. Opera(Browser)对URL的长度限制为190000字节。
    6. Google(chrome)对URL的长度限制为8182字节。
    这里,我只测试过IE浏览器和360极速浏览器,其它浏览器来自于网上的资料。

    另外提醒一下大家,URL中,一个汉字通过不同的编码方式大小也不一样。

    转载于:https://my.oschina.net/yizongjishi/blog/1862201

    展开全文
  • 小程序页面跳转传参长度限制

    千次阅读 2021-01-27 22:32:26
    我们在开发小程序的过程中,有时候会在小程序页面跳转的时候传参,这个参数的长度还特别的长(如下),url就会被截断。 //我需要传递的参数 let videoDetail = ...

    我们在开发小程序的过程中,有时候会在小程序页面跳转的时候传参,这个参数的长度还特别的长(如下),url就会被截断。

    //我需要传递的参数
    let videoDetail = "https://xxxxxxxxxx/index.html?imid=2019112116065477552274061212192768#/Index?imid=2019112116065477552274061212192768&apitoken=81df16bb-e68d-4efa-a4ad-07ad9eeb8de6WXorqMct5MXR20vWYiFTk_n2wTu8Qw1212192768"
    //页面跳转
    wx.navigateTo({
        url: '/pages/homePage/mall/webView/webView?imUrl=' + videoDetail
    })
    

    解决办法:需要对参数进行编码(下边是传入的方法)
    在这里插入图片描述
    (接收的方法)

    在这里插入图片描述

    展开全文
  • url长度限制,太长的字符串会传递失败,可使用窗体通信、全局变量,或encodeURIComponent等多种方式解决,如下为encodeURIComponent示例。 … 限制有多长? 很长,几百K左右吧。 如何传递超过URL长度限制的参数 1...

    答案是:有

    url有长度限制,太长的字符串会传递失败,可使用窗体通信全局变量,或encodeURIComponent等多种方式解决,如下为encodeURIComponent示例。

    限制有多长?

    很长,几百K左右吧。

    如何传递超过URL长度限制的参数

    1.encodeURIComponent

    <navigator :url="'/pages/test/test?item='+ encodeURIComponent(JSON.stringify(item))"></navigator>
    
    // 在test.vue页面接受参数
    onLoad: function (option) {
        const item = JSON.parse(decodeURIComponent(option.item));
    }
    

    注意:用encodeURIComponent不能传输含有%的参数,【报Bug】- DCloud问答

    2.eventChannel

    3.全局变量globalData

    • 第一步:在App.vue中配置全局变量
    <script>  
        export default {  
            globalData: {  
                text: 'text'  
            }
        }  
    </script>
    
    • 第二步:在页面中操作全局变量
      • js:getApp().globalData.text = 'test'
      • onLaunch时:getApp对象还未获取,暂时可以使用this.$scope.globalData获取globalData。

    4.页面通信uni.$emit(eventName,OBJECT)

    为啥encodeURIComponent过就能传输更长的参数了?

    注意
    不能传输含有%的参数【报Bug】页面跳转uni.navigateTo 通过 encodeURIComponent(JSON.stringify()) 编码内容出现% 子页面解码时出错 - DCloud问答


    参考

    1. uni.navigateTo - uni-app官网
    2. App.vue - uni-app官网
    3. uni-app官网
    4. 页面通讯 - uni-app官网
    5. uni-app官网
    展开全文
  • 微信小程序路由跳转url传参长度过长导致页面接收参数...问题后顾: 路由跳转url传参长度限制导致接受参数报错 wx.navigateTo 路由跳转传参url?id=2 ; 多个参数通过&链接进行参数拼接 ; 但是我们的url是有长度限制机

    微信小程序路由跳转url传参长度过长导致页面接收参数报错

    开发小程序页面间传参是家常便饭事 , 前后台分离是大趋势 , 前台有后台支持的时候 , 前台的开发会轻松很多 , 但是难免很多时候后台并不能给到我们所有需要的数据接口 , 这个时候我们只能通过页面间传参 , 在下一个结果页面进行接收 , 处理现实我们前台的数据

    问题后顾: 路由跳转url传参长度限制导致接受参数报错

    wx.navigateTo 路由跳转传参url?id=2 ; 多个参数通过&链接进行参数拼接 ; 但是我们的url是有长度限制机制的存在 , 我们的参数过多 , 拼接后导致url的整体长度过长 , 传递和接收时会导致参数不完整 , 异常情况~~
    例如下面可以正常传递接收参数

    uni.navigateTo({
     url: './afterSale?id=' + id
    })
    

    下面数据多参数就 可能 导致无法正常传递接收参数

    /**
     * 例子中 orderData 字段为订单数据信息; 类型为 Object 传递时选用 JSON.stringify 和 JSON.parse方法
     * 否则接收时会导致 orderData : "[object Object]"
     */
    uni.navigateTo({ //跳转页面
     url: './afterSale?id=' + id + "&orderData=" + JSON.stringify(item)
    })
    
    /**
     * 此时数据多参数JSON.parse方法 可能 会报 JSON.parse 解析异常
     */
    onLoad: function(options) { //接收页面
    	console.log(JSON.parse(options.order))
    }
    

    解决方法1
    eventChannel 新增页面间通信接口,用于监听被打开页面发送到当前页面的数据 ; 需要基础 2.7.3 ,低版本肯定要做兼容处理

    /**
     * 例子中 eventChannel 为新增 路由events 事件 res 中可直接获取到实例 调用 emit 触发事件, 类似vue中的组件间通信 on emit 方法; 之后我们在接收页面onLoad onShow 中获取监听
     */
    
    uni.navigateTo({ //跳转页面
    	url: './afterSale',
    	events: {},// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
    	success: function (res) {
    		res.eventChannel.emit('getData', item)  //触发事件
    	}
    })
    
    /**
     * onLoad onShow 中通过 this.getOpenerEventChannel() 获取 eventChannel 实例 同时使用 on 方法进行监听接收传参数据
     */
    onLoad: function(options) { //接收页面
    	const eventChannel = this.getOpenerEventChannel();
    	eventChannel.on("getData",data => {
    	 	console.log(data)
    	});
    }
    
    /**
     * 例子中 eventChannel 的只是部分能力的使用 ,  eventChannel 更多的功能可参考文档结合实际场景扩展使用
     */
    

    解决方法 2

    用法不再赘述 , 用到的方法容易理解 , 用法也简单

    uni.navigateTo({ //跳转页面
    	url: './afterSale?id=' + id + '&orderData=' + encodeURIComponent(JSON.stringify(item))
    })
    
    /**
     * 
     */
    onLoad: function(options) { //接收页面
    	const order = JSON.parse(decodeURIComponent(options.order));
    	console.log(order)
    }
    

    其他方法 : 可以通过全局变量 globalData , 或者本地缓存进行解决 , 不再赘述 , 实现方法简单

    展开全文
  • 今天写到两个页面传值,刚开始通过url上加参数进行传值, var strLink = "my.asp?str1=" + str1List + "&str2=" + str2List ; var iHeight = 600; // 高度 var iWidth = 1000...
  • 在准备传参跳转的页面**/ letcompetition = {}//这是一个很长的很多数据的对象 //转成String编码一下 competition = encodeURIComponent(JSON.stringify(competition)) wx.navigateTo({ url:`pages/common/index?...
  • URL传递参数长度限制

    万次阅读 2015-12-01 09:37:33
    IIS 7 对 Query String 有长度限制;...2. 360极速浏览器对URL长度限制为2118字节。 3. Firefox(Browser)对URL长度限制为65536字节。 4. Safari(Browser)对URL长度限制为80000字节。 5.
  • 两个html页面之间传参,通过url的话会有长度限制,如果数据大一点的话,该用什么方式?新人求解答
  • 1.在这之前我一直以为,应该说是并没有去思考过,url地址传参长度限制问题:知道在项目材料价格系统中遇到之后,才对这个问题进行了具体的探索。IE中最大的长度限制为2084个,用于get传递数据的长度是2048个字节。...
  • 1、编程式导航方式使用this.$router.... let routeUrl = this.$router.resolve({ path: '/abc', query: {id : 22} }) window.open(routeUrl .href, '_blank) } 2、router-link <router-link target="_bl...
  • url传参过多,导致url过长问题处理

    千次阅读 2016-08-04 12:17:00
    具体长度限制和浏览器等因素有关。ie支持的长度最长支持2083,其他浏览器支持更长。当长度超过了请求就会无效。  解决办法:url长度有限制,那么我们只能改用其他方式发请求了,使用最原始的表单提交方式进行。...
  • 1:问题描述:画面上是有一个table,table上表示了有很多文件的。... 如果是分别一条一条的下载没有问题,用...2:原因:经过调查发现是从当前页面网download画面传值的时候,所有的文件名都是用URL传递的,用subm...
  • GET传参最大长度的理解误区

    千次阅读 2018-06-01 13:16:05
    HTTP 协议 未规定 GET 和POST的长度限制GET的最大长度显示是因为 浏览器和 web服务器限制了 URI的长度不同的浏览器和WEB服务器,限制的最大长度不一样要支持IE,则最大长度为2083byte,若只支持Chrome,则最大...
  • 但这样传参有一个问题,当对象数据长度过大时会报错,因为url传参时程序把过长的那段数据给截取掉了,导致数据转换回来时格式不对而报错。 这时可以再添加另一个API:encodeURIComponent(obj) 和 decodeURIComponent...
  • http get 传参最大长度介绍

    千次阅读 2020-05-25 19:12:11
    HTTP 协议 未规定 GET 和POST的长度限制 GET的最大长度显示是因为 浏览器和 web服务器限制了 URI的长度 不同的浏览器和WEB服务器,限制的最大长度不一样 要支持IE,则最大长度为2083byte,若只支持Chrome,则最大...
  • GET请求中URL的最大长度限制总结

    千次阅读 2018-10-12 09:44:26
    由于jsonp跨域请求只能通过get请求,url长度...关键字: 服务器,浏览器,url长度限制 今天在写一个php相应jsonp请求的功能时,发现当url中包含的请求参数过长时会返回414错误。 如下图 &lt;html&...
  • 原因:参数被url截断了 、...//传参 wx.navigateTo({//wx.redirectTo、wx.reLaunch url: '../details/details?id=' + encodeURIComponent(id) }); 接收 onLoad(options) { var id = decodeURIComponent(opt...
  • 今天写到两个页面传值,刚开始通过url上加参数进行传值, var strLink = "my.asp?str1=" + str1List + "&str2=" + str2List ;var iHeight = 600; // 高度var iWidth = 1000;...
  • java地址栏传参数有长度限制

    千次阅读 2014-09-02 19:50:46
    传到后台url地址如下: http://localhost:8080/record/exportDataExcel.htm?checkedIds=1409020014,1409020013,1409020012,1409020011,1409020010,1409020009,1409020008,1409020007, 1409020006,1409020005,...
  • HTTP GET请求传参最大长度的理解误区

    千次阅读 2019-07-29 16:12:41
    1.HTTP 协议 未规定 GET 和POST的长度限制 2.GET的最大长度显示是因为 浏览器和 web服务器限制了 URI的长度 3.不同的浏览器和WEB服务器,限制的最大长度不一样 4.要支持IE,则最大长度为2083byte,若只支持Chrome...
  • get请求传参的最大长度

    千次阅读 2017-12-19 10:48:05
    但是最近看到一些超长的url,能够在IE下工作,复制下来测算了一下长度,大概是650个字节,这个长度远远超过了256个字节.这时候对以前的说法不由得有些怀疑—-用各大搜索引擎翻了个遍,最后找到最权威的解释—-Maximum URL...
  • 这是一个错误的说法,实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是来源与浏览器或web服务器,浏览器或web服务器限制了url的长度。 对POST请求理论上讲是没有大小限制的。HTTP协议...
  • GET请求 在 url 中传递的参数有长度上的限制, 而 POST 请求 没有 (有关传参长度误区详见下方说明) ; POST 相对于 GET 更 安全,因为 POST请求 的数据在地址栏上不可见, 而 GET请求 参数直接暴露在 url 中,故不能...
  • GET请求传参长度

    2020-03-01 11:59:21
    误区:get请求参数的大小存在限制,post请求的参数大小是无限制的。 Http协议从未规定GET/POST的请求长度限制是多少 对GET请求参数的限制来源于浏览器/web服务器,限制了url的长度 ...
  • 关于URL,POST传递值的大小限制问…

    千次阅读 2017-10-13 16:34:24
    该问题实际是IE对URL长度限制的问题。 2)HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论...
  • 项目中经常会碰到的一个问题就是前端ajax从后台请求到了数据,比如用户...在这种情况下我们前端不能用ajax只能另谋出路,在之前的博文里我用到的是最简单的url传值,当时勉强能用,后来时间一长各种弊端也暴露出来了。
  • encodeURIComponent()和encodeURI()

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,845
精华内容 2,738
关键字:

url传参长度限制