六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 32|回复: 0

ajax碰到请求url过长的问题!

[复制链接]

升级  18.67%

20

主题

20

主题

20

主题

秀才

Rank: 2

积分
78
 楼主| 发表于 2013-1-23 02:55:54 | 显示全部楼层 |阅读模式
一个超大文本框textarea里面有大量数据,ajax通过URL请求service返回结果,URL里面包含了各种参数,当然也包含之前的超大文本框的内容。

之前开发的时候一直用Firefox在调试,4000长度的字符串在textarea里面通过URL请求都是没有问题。
提交给测试的时候问题来了,测试人员在IE下面发现问题,textarea里面字符长度超过2000(大概数据)时,会报JS错误,ajax没有返回值给前台。

看原先代码:

function getJsonData(url) {   var ajax = Common.createXMLHttpRequest();   ajax.open("GET",url,false);   ajax.send(null);   try   {    eval("var s = "+ajax.responseText);    return s;   }   catch(e)   {    return null;   } } function getData(){ var url="BlacklistService.do?datas="+datasvalue; var result = getJsonData(url); }
网上google发现解决办法:
修改使用的XMLHttp的请求为POST,并且把参数和URL分离出来提交。

修改后代码如下:

function getJsonData(url,para) {   var ajax = Common.createXMLHttpRequest();   ajax.open("POST",url,false);   ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');   ajax.send(para);   try   {    eval("var s = "+ajax.responseText);    return s;   }   catch(e)   {    return null;   } } function getData(){ var url="BlacklistService.do"; var para="datas="+datasvalue; var result = getJsonData(url,para);}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表