图片的base64编码作为ajax的url参数传递时,ie8浏览器支持url的最大长度问题
首先,推荐一个关于url最大长度的相关链接:http://blog.csdn.net/yang_5/article/details/8174889
由于这篇文章指出的ie支持url的最大长度和我测试的结果出入较大,我也不确定了。也许是除了浏览器还有其他限制吧!
工作中遇到如下问题:
需要将客户端的图片的base64编码传递到服务器后再进行生成图片到服务器,在js中传递时,用ajax的post方式请求时,通过url传参的方法传递该长度较大的编码时,长度是受限
制的。
在ie8上真实测试的结果如下:
strbase64date为图片的base64原码。
经过编码后对base64原码进行截取长度为48599的字符串:encodeURIComponent(strbase64date).substr(0,48599)
xmlhttp2.Open("POST",URL,false);
URL包括长度较大的参数(图片的base64码)48599位加上url地址的长度总和为48666字符时,当URL总长度大于48666字符时,后台就获取不到base64数据了。
这说明,ajax的post请求时,用url传递参数是肯定受长度限制的。
最后解决办法:
直接用xmlhttp2.Send(postData);传递就行了。这种长度较长的base64码还是别用url传参了
用360浏览器测试与ie8几乎差不多。
在这里,只测试了ie8浏览器,不知道ie其他版本的浏览器会怎么样。若有相关信息,还请各位分享一下!
相关推荐
pythonjw 2020-11-17
hedongli 2020-09-01
浪味仙 2020-08-17
IT兄弟团 2020-08-01
凉白开 2020-07-19
kjh00abc 2020-07-08
Skyline 2020-06-28
苦咖啡flask 2020-06-18
万物weiyi 2020-06-16
半纸药笺 2020-06-14
chenhaimeimeng 2020-06-13
JF0 2020-06-13
逍遥友 2020-06-02
kyelu 2020-06-02
northwindx 2020-05-31
tengyuan 2020-05-30
singer 2020-05-30
GreatZhou 2020-05-28
coolhty 2020-05-20