honda418 发表于 2013-1-23 02:55:54

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

一个超大文本框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);}
页: [1]
查看完整版本: ajax碰到请求url过长的问题!